Невозможно заполнить данные внутри класса ViewController

Я создаю галерею с использованием Three20, моя проблема в том, что когда я пытаюсь создать свой вид, чтобы показать галерею, мой AlbumController не заполнен фотографиями, полученными из моего предыдущего представления. Фотографии есть в NSArray (inputAlbumController), а мой заголовок для следующего представления - в NSTextField (txtSearch), приложение вводит оператор if (self.albumView == nil), я проверял их с помощью NSLog, но когда Я пытаюсь передать их через сеттеры, на следующем просмотре ничего не получаю. Вот часть кода, необходимого для этой проблемы:

Это rootViewController.h:

@interface rootViewController : UIViewController {
    AlbumController *albumView;
    IBOutlet UITextField *txtSearch;
}
@property (nonatomic, retain) AlbumController *albumView;

Это в функции из моего rootViewController.m:

geoFlickrAppDelegate *appDelegate = (geoFlickrAppDelegate *)[[UIApplication sharedApplication] delegate];
if(self.albumView == nil) {
    [albumView setMyImages:inputAlbumController];
    [albumView setMyTitle:txtSearch.text];
    //self.albumView = album;
    [appDelegate toGallery];
}

[self.navigationController pushViewController:self.albumView animated:YES];

Это мой AlbumController.h:

@interface AlbumController : TTThumbsViewController {
    NSArray *myImages;
    NSString *myTitle;
}
@property (nonatomic, retain) NSArray *myImages;
@property (nonatomic, retain) NSString *myTitle;

Это ViewDidLoad из моего AlbumController.m:

- (void)viewDidLoad { 
self.photoSource = [[PhotoSource alloc]  
                    initWithType:PhotoSourceNormal  
                    title:myTitle  
                    photos:myImages  
                    photos2:nil  
                    ];  
} 

Есть идеи, почему это так? Я что-то пропустил?

1 ответ

Трудно сказать, в чем именно проблема. Для начала вы не используете стандартный TTNavigator. Это не обязательно, но с ним легче работать, особенно если вы используете три 20 контроллеров TTViewController.

Во-вторых, AlbumController должен быть где-то инициализирован (предпочтительно в функции запуска приложения):

AlbumController* _albumContoller = [[AlbumController alloc] init];

Я также рекомендую иметь объект AlbumController в AppDelegate и не являться частью другого UIViewController. Это сделает вещи намного проще:

[appDelegate.albumView setMyImages:inputAlbumController];
[self.navigationController pushViewController:appDelegate.albumView animated:YES];
Другие вопросы по тегам