首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AppDelegate - RESideMenu类中推送视图控制器

从AppDelegate - RESideMenu类中推送视图控制器
EN

Stack Overflow用户
提问于 2015-11-25 14:18:20
回答 1查看 674关注 0票数 0

我使用的是RESideMenu类,在这个类的内容中使用导航控制器,在左边的菜单中使用一些视图。

此导航是内容主视图和详细信息视图。

当我收到通知时,我想从app委托中推送详细信息视图,所以我写了这个,但是它不起作用。

代码语言:javascript
复制
NSString *URL = @"any url";


UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *mainNavigation = (UINavigationController *) [storyboard instantiateViewControllerWithIdentifier:@"MainNavigation"];



MainViewController *mainVC = (MainViewController *) [storyboard instantiateViewControllerWithIdentifier:@"MainViewController"];
DetailViewController *detailVC = (DetailViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];

[mainNavigation setViewControllers:@[mainVC, detailVC]];
[mainNavigation popViewControllerAnimated:YES];

[detailVC setNewsLink:URL];
[mainNavigation pushViewController:detailVC animated:YES];

有人能帮忙吗?

代码语言:javascript
复制
RESideMenu *sideMenu = (RESideMenu *) [storyboard instantiateViewControllerWithIdentifier:@"RootViewController"];
UINavigationController *mainNavigation = (UINavigationController *) [sideMenu contentViewController];

[mainNavigation pushViewController:detailVC animated:YES];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 15:40:56

您不采取“当前导航控制器”,并推动细节。您正在实例化一个新的 mainNavigation (不是当前的)并推送到详细信息。您需要获得current mainNavigation (例如,在启动时存储在属性中),然后推送到新的DetailViewController。

更新

在这种情况下,您使用的是RESideMenu。您必须使用contentViewController (可能是UINavigatorController)并将其推送出去。

示例

代码语言:javascript
复制
DetailViewController *detailVC = (DetailViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];

NSString *URL = @"any url";
[detailVC setNewsLink:URL];

[((UINavigationController *)self.sideMenuViewController.contentViewController) pushViewController:detailVC animated:YES];

更新2

也许,在您的AppDelegate中,RESideMenu就是您的self.window.rootViewController。然后:

代码语言:javascript
复制
DetailViewController *detailVC = (DetailViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];

NSString *URL = @"any url";
[detailVC setNewsLink:URL];

RESideMenu *sideMenu = (RESideMenu *)self.window.rootViewController;
[((UINavigationController *)sideMenu.contentViewController) pushViewController:detailVC animated:YES];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33918868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档