我正在使用修改后的基于视图的应用程序,在其中我启动了 UIViewController 显示输入控件和 TTThumbsViewController 显示结果。我在 AppDelegate 中使用 TTNavigator 将它们传递给initWithName:
TTThumbsViewController。我自己从文档中阅读了这个:
我的 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
方法永远不会被调用。知道为什么会这样吗?