【发布时间】:2014-10-05 01:16:48
【问题描述】:
在遵循一些指南时遇到问题,特别是 http://blog.originate.com/blog/2014/04/22/deeplinking-in-ios/
我正在设置 url 方案,并且从另一个应用程序启动该应用程序运行良好,但传入主机或 url 并不能正常工作。我正在为所有视图布局使用故事板和界面构建器。
指南在 appDelegate 中显示了这个 openURL:
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
if([[url host] isEqualToString:@"page"]){
if([[url path] isEqualToString:@"/page1"]){
[self.mainController pushViewController:[[Page1ViewController alloc] init] animated:YES];
}
return YES;
}
}
这是我从其他几个来源快速简化的版本,即 Get Instance Of ViewController From AppDelegate In Swift我目前正在跳过 url 主机的条件以删除问题中潜在的其他变量。
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String, annotation: AnyObject?) -> Bool {
var rootViewController = self.window!.rootViewController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var profileViewController = mainStoryboard.instantiateViewControllerWithIdentifier("profile") as ProfileViewController
rootViewController.navigationController.popToViewController(profileViewController, animated: true)
return true
}
swift 版本导致崩溃:
fatal error: unexpectedly found nil while unwrapping an Optional value
好像rootViewController还没有navigationController?
【问题讨论】:
标签: ios swift uiviewcontroller uinavigationcontroller appdelegate