Невозможно заполнить данные внутри класса 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];