1

在我的应用程序中,我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?如果值得,我会走痛苦的路转行。

先感谢您!

4

2 回答 2

1

如果 ECSlidingViewController 设置为故事板中的初始视图控制器,那么为什么要在应用程序委托代码中实例化另一个?通过这样做,您在 ECSlidingViewController 的另一个实例上调用您的方法,而不是故事板放在屏幕上的那个实例。这可能是您的问题的根源。相反,获取对您的 ECSlidingViewController 的引用,如下所示:

self.slidingController = self.window.rootViewController;

然后尝试,

self.slidingController.topViewController presentModalViewController:controller animated:YES];

或者

self.slidingController presentModalViewController:controller animated:YES];

我没有使用过 ECSlidingViewController,所以我不知道其中哪些可能有用。

于 2013-04-16T16:31:35.617 回答
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];
于 2013-04-16T11:12:39.017 回答