如果在iOS启动时提供URL,如何基于URL加载不同的视图控制器
我有一个应用程序,它使用safari通过Instagram进行身份验证,当它返回时,我希望它立即加载表视图,而不加载登录视图。 我现在做的是:如果在iOS启动时提供URL,如何基于URL加载不同的视图控制器,ios,objective-c,ios6,Ios,Objective C,Ios6,我有一个应用程序,它使用safari通过Instagram进行身份验证,当它返回时,我希望它立即加载表视图,而不加载登录视图。 我现在做的是: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainSc
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
DVGViewController *myVC = [[DVGViewController alloc] initWithNibName:@"DVGViewController" bundle:nil];
self.viewController = [[UINavigationController alloc] initWithRootViewController:myVC];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
// some code skipped
UITableViewController *myTVC = [[DVGTableViewController alloc] init];
self.viewController = [[UINavigationController alloc] initWithRootViewController:myTVC];
return YES;
}
目前,我仍然每次使用第一个方法,尽管第二个方法也会被触发,因为我使用它从url获得计算结果,我知道这一点。我不知道为什么它不加载tableView
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
方法将调用,如果您的应用程序来自特定的URl,如来自facebook auth或safari,则此方法将调用我已发现错误。在第二种方法中,我从未设置过window和rootViewController。将此代码添加到第二个方法会有所帮助
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
是的,它被调用了,一切正常,但我没有加载UITableView,我得到了常规的DVGViewController在您的方法中,您可以编写条件来检查url是否与给定的文本匹配,然后加载其他UIViewController。-(BOOL)应用程序:(UIApplication*)应用程序handleOnUrl:(NSURL*)urlI已经有代码在那里,应该显示没有任何条件的tableview,但它仍然无法工作。你的应用程序是UINavigation base应用程序吗?