передача данных между представлениями

Так что я'я пытаюсь передать данные между двумя представлениями (первое представление - 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 (ноль), как это возможно?

Ответы на вопрос(3)

Ваш ответ на вопрос