iOS5:如何在没有UINavigationController的情况下处理视图之间的导航

时间:2012-07-27 05:42:03

标签: ios5 uiviewcontroller uinavigationcontroller

我正在尝试在我的iPad应用中创建一个类似于Instapaper for iPad的自定义侧边栏导航窗格。在by Scott Sherwood之类的优秀教程的帮助下,我能够创建自定义侧边栏并在视图控制器之间切换。

我使用根视图控制器实现了这个,其中我有两个视图 - 一个是tabbar视图,另一个是与所选选项卡关联的内容,类似这样...

enter image description here

每当我选择标签时,我只需在Root View Controller添加一个子视图,就像这样......

@implementation RootViewController

//
// some code here
//

#define TABBAR_WIDTH 80.0F
- (void)buttonTapped:(UIButton *)aButton
{
    UIViewController *newVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SomeView"];
    [newVC.view setFrame:CGRectMake(TABBAR_WIDTH, 0, self.view.bounds.size.width - TABBAR_WIDTH, self.view.bounds.size.height)];
    [self addSubView:newVC.view];
}

现在我要做的是将新视图推送到Contents而不是基于选项卡选择,而是基于内容视图中的一些交互。我想通过这样做的方法是在superview中添加另一个子视图。在这种情况下,我必须自己实现视图之间的推,弹出,后退按钮,动画。

我想知道我是否可以使用UINavigationController来实现这个场景(这样可以自动地处理推,弹出,后退按钮)。

有人可以对这个话题有所了解吗?甚至可以简要概述一下如何在Instapaper iPad app中实施这一点会有所帮助。

1 个答案:

答案 0 :(得分:2)

您需要在容器视图中进行导航。

所以你可以选择这件事:

  1. 将一个navigationController(alloc-init-set frame-navigation bar隐藏,等等)将您的content1视图控制器作为根控制器。
  2. 在Content1视图控制器中,在按钮点击事件中,只需将导航控制器推送到Content2视图控制器,并对弹出事件执行相同操作
  3. Alloc - 在您的根控制器中启动导航控制器,您可以在xib中使用自定义选项卡和容器视图...

    注意:在添加任何其他视图之前清除容器视图。

    我已经完成了这个场景,所以它对我来说很好。

    希望这是你所需要的......

    享受编码:)