Невозможно заполнить данные внутри класса ViewController - PullRequest
1 голос
/ 07 июля 2011

Я создаю галерею с использованием 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 Ответ

1 голос
/ 08 июля 2011

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

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

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

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

[appDelegate.albumView setMyImages:inputAlbumController];
[self.navigationController pushViewController:appDelegate.albumView animated:YES];
...