1

我正在使用 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;

这是我的 AlbumController.m 中的 ViewDidLoad:

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

知道为什么会这样吗?我错过了什么吗?

4

1 回答 1

1

很难说到底是什么问题。对于初学者,您没有使用标准的 TTNavigator。这不是必需的,但使用起来更容易,尤其是当您使用three20 TTViewControllers 时。

其次,AlbumController 必须在某个地方初始化(最好在应用程序启动功能中):

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

我还建议在 AppDelegate 中包含 AlbumController 对象,而不是另一个 UIViewController 的一部分。它会让事情变得更容易:

[appDelegate.albumView setMyImages:inputAlbumController];
[self.navigationController pushViewController:appDelegate.albumView animated:YES];
于 2011-07-07T22:56:36.927 回答