我在Xcode 5中将UINavigationController添加到了界面构建器中,并将其标识符命名为“ importer”,然后在Home controller中,根据这些代码,我将其用作模式窗口-
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"main" bundle:nil];
UINavigationController *importer = [storyboard instantiateViewControllerWithIdentifier:@"importer"];
[self presentViewController:importer animated:YES completion:nil];
它运行良好,并且导入器控制器在其UITableView中显示了正确的数据。然后,当我关闭导入器控制器时,我在导入器控制器中使用此代码-
[self dismissViewControllerAnimated:YES completion:^{
HomeController *p = (HomeController *)self.presentedViewController;
NSLog(@"home controller = %@", p);
[p onCompleteImport];
}];
HomeController是提供导入器控制器的人,我想从完成块中获取HomeController,但它给了我“空”,那么如何从导入器控制器中获取HomeController?谢谢。
我尝试了presentingViewController,parentViewController,presentedViewController,甚至self.navigationController.presentingViewController,self.navigationController.presentedViewController和self.navigationController.parentViewController都失败了。
试试这个:
HomeController *p = (HomeController *)self.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"home controller = %@", p);
[p onCompleteImport];
}];
在使用块之前将其保留,因为动画完成时已将“导入器”关闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句