我的app delegate中的handleOpenURL方法遇到了一些问题。我有一个应该正常显示的rootviewcontroller,但是当我的应用程序中打开一个文件时,我需要handleOpenURL方法来呈现一个新的viewcontroller并发送url信息。问题是我无法从我的app委托呈现模态视图控制器。此外,当我尝试在我的rootviewcontroller中调用一个方法来呈现我得到的modalviewcontroller
Warning: Attempt to present ... whose view is not in the window hierarchy!
所以,我想我只是在找一个解决方案来呈现一个新的模态视图控制器并将url信息传递给该类。这是app委托方法。
- (void)handleOpenURL:(NSURL *)url {
}
感谢您的帮助
答案 0 :(得分:5)
在RootViewController中,像
一样创建appDelegate的实例 YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication]delegate];
appDelegate.rootViewControllerInstance = self;
然后主题
[appDelegate handleOpenURL:yourURL];
还创建一个callBackFunction,例如:
-(void)callBack:(NSUrl *)url;
现在在appDelegate类中创建property
RootViewController
并在appDelegate
中以这种方式指定你的函数..
- (void)handleOpenURL:(NSURL *)url {
[rootViewControllerInstance callBackUrl:url];
}
答案 1 :(得分:1)
segue
。 identifier
设置名称,将其自定义为模态显示。[self performSegueWithIdentifier:@"MySegueIdentifier"];
。prepareForSegue
中设置任何属性,包括例如一个URL。