передача данных между представлениями
Так что я'я пытаюсь передать данные между двумя представлениями (первое представление - tableViewController, когда ячейка нажата, данные отправляются во второе представление, второе представление получает imageView, когда данные отправляются, отображается изображение), используя этот учебникiphonedevsdk.I»
м, используя то же самоеtheAppDataObject метод в моих взглядах:
- (AppDataObject*) theAppDataObject
{
id theDelegate = (id) [UIApplication sharedApplication].delegate;
AppDataObject* theDataObject;
theDataObject = (AppDataObject*) theDelegate.theAppDataObject;
return theDataObject;
}
Когда ячейка нажата, яЯ пытаюсь отправить данные:theAppDataObject.imageString = tempImageString;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
tempImageString = (((championList *) [self.champions objectAtIndex:indexPath.row]).championImage);
AppDataObject *theDataObject = [self theAppDataObject];
NSLog(@"tempIm-g = %@",tempImageString);
theDataObject.imageString = tempImageString;
NSLog(@"theAppDataObject.imageString = %@",theDataObject.imageString);
[self.navigationController popToRootViewControllerAnimated:YES];
}
Вывод NSLog:
tempIm-g = Champ_0.jpg
theAppDataObject.imageString = (null)
SecondViewController (показать изображение):
-(void)viewWillAppear:(BOOL)animated
{
AppDataObject* theDataObject = [self theAppDataObject];
UIImage *tempImage = [UIImage imageNamed:theDataObject.imageString];
NSLog(@"temp image = %@",tempImage);
[choosenChampionImageView setImage:tempImage];
}
Вывод NSLog:
временное изображение = (ноль)
Моя проблема заключается в том, что AppDataObject.imageString всегда нулевой
Возможные решения, которые я знаю:
Не используйте AppDataObject в качестве контейнера общих данных и просто сохраняйте данные в appDelegate.
Напр .:
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
appdelegate.imageString = tempImageString;
Но я хочу выяснить, как использовать протоколы.
Что я пробовал: Сделать глобальный theDataObject:
view1.h
@interface championsListTableViewController : UITableViewController
{
NSString *tempImageString;
AppDataObject* theDataObject;
}
@property(strong,nonatomic) NSString *tempImageString;
@property(strong,nonatomic) AppDataObject* theDataObject;
выход NSLog (@ "theDataObject is% @ ", TheDataObject); :
theDataObject (ноль), как это возможно?