在我的应用中,我通过ECSlidingViewController
将Storyboard
声明为初始根控制器。在我的AppDelegate的didFinishLaunchingWithOptions
方法中,我将其实例化如上:
self.slidingController = [[UIStoryboard storyboardWithName:@"AppStoryboard" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ECSlidingViewController"];
我想要的是能够显示全局模态视图控制器(例如,当应用程序处于活动状态时推送通知时),而不知道哪个控制器当前位于滑动控制器的顶部。
我所做的是(在我的AppDelegate中):
[self.slidingController.topViewController presentModalViewController:controller animated:YES];
但它似乎不起作用。
有什么方法可以从我的滑动控制器中呈现一个模态控制器,无论哪个控制器是topViewController?
PS。如果不是,我想要的内容是否有可能与SWRevealViewController
而不是ECSlidingViewController
一起使用?如果它值得,我将走痛苦的道路来切换。
提前谢谢!
答案 0 :(得分:1)
如果将ECSlidingViewController设置为故事板中的初始视图控制器,那么为什么要在应用委托代码中实例化另一个?通过这样做,您在ECSlidingViewController的不同实例上调用您的方法,而不是故事板在屏幕上放置的方法。这可能是您问题的根源。相反,请获取对此ECSlidingViewController的引用:
self.slidingController = self.window.rootViewController;
然后试试,
self.slidingController.topViewController presentModalViewController:controller animated:YES];
或
self.slidingController presentModalViewController:controller animated:YES];
我没有使用ECSlidingViewController,所以我不知道哪些可能有效。
答案 1 :(得分:0)
试试这个
UIViewController *rootViewController = self.window.rootViewController;
// You now have in rootViewController the view with your "Hello world" label and go button.
// Get the navigation controller of this view controller with:
UINavigationController *navigationController = rootViewController.navigationController;
[navigationController.topViewController presentModalViewController:controller animated:YES];