如果在iOS启动时提供URL,如何基于URL加载不同的视图控制器

如果在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

我有一个应用程序,它使用safari通过Instagram进行身份验证,当它返回时,我希望它立即加载表视图,而不加载登录视图。 我现在做的是:

- (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应用程序吗?