私は、入力コントロールを表示する UIViewController と結果を表示する TTThumbsViewController を開始した、変更されたビューベースのアプリケーションを使用しています。TTThumbsViewController の TTNavigator を使用して、AppDelegate でそれらを渡してinitWithName:
います。ドキュメントを読んで自分でこれを行いました:
TTThumbsViewController 内の ViewDidLoad メソッド:
- (void)viewDidLoad {
self.photoSource = [[PhotoSource alloc]
initWithType:PhotoSourceNormal
title:myTitle
photos:myImages
photos2:nil
];
}
私の AppDelegate の実装:
@implementation geoFlickrAppDelegate
@synthesize window=_window;
@synthesize viewController=_viewController;
@synthesize navigator;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
navigator =[TTNavigator navigator];
navigator.window = self.window;
TTURLMap *map = navigator.URLMap;
[map from:@"app://home/" toViewController:[geoFlickrViewController class]];
[map from:@"app://album/(initWithName:)" toViewController:[AlbumController class]];
[navigator openURLAction:[TTURLAction actionWithURLPath:@"app://home/"]];
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
return YES;
}
-(void)toGallery:(NSString*)txt
{
[navigator openURLAction:[TTURLAction actionWithURLPath:txt]];
}
次のビューをプッシュするための UIViewController 内のイベント:
-(IBAction)search:(id)sender
{
NSString *str = [[NSString alloc] initWithFormat:@"app://album/%@",txtSearch.text];
geoFlickrAppDelegate *appDelegate = (geoFlickrAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate toGallery:str];
}
このコードの結果は、入力が TTThumbsViewController を使用して AppDelegate を介して渡されますinitWithName:
が、プッシュされることはなく、ViewDidLoad
メソッドが呼び出されることはありません。なぜそうなのか、何か考えはありますか?