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];

また、AlbumController オブジェクトを別の UIViewController の一部ではなく、AppDelegate に含めることをお勧めします。それは物事をはるかに簡単にします:

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