如何使用导航控制器以这种方式渲染viewcontroller

时间:2011-07-04 03:40:56

标签: iphone ios4

我有3个视图堆栈,即MyHomeViewController,MySubViewController,MyReplyListViewController。

现在MyHomeViewController是根视图。当我从MySubViewController返回它时,它将我带到MyHomeViewController.as,当我从MyReplyListViewController返回时,它将我带到使用导航控制器的MySubViewController

所以,MyHomeViewController -> MySubViewController -> MyReplyListViewController

现在我想要的是,当用户在应用程序中收到新邮件时。

当用户启动应用程序并且他收到了新的回复时,我想首先显示MyReplyListViewController,当我回来时它必须带我到MySubViewController。 从那里,当我回馈它必须带我到MyHomeViewController

  

MyReplyListViewController - >   MySubViewController - >   MyHomeViewController

当他收到新回复时,这只会发生一次。否则它必须表现得很好。

我正在努力实现这一点,但没有运气

感谢您的时间和支持。

1 个答案:

答案 0 :(得分:2)

尝试使用UINaviationController viewControllers属性和setViewControllers方法,

@property(nonatomic, copy) NSArray *viewControllers;
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated;

<强>更新:

对于以下控制器。

MyReplyListViewController -> MySubViewController -> MyHomeViewController

您需要按照上面显示的相反顺序创建viewControllers和数组。

NSArray* myControllerArray = [NSArray arrayWithObjects:rootViewController, subViewController, replyViewController, nil];

将其设置为新的导航堆栈。

[myNavigationController setViewControllers:myControllerArray animated:NO];

现在直接转到MyReplyListViewController

 [myNavigationController popToViewController:replyViewController animated:YES]