为基于视图的应用添加导航效果?

时间:2010-07-01 07:31:28

标签: iphone objective-c uiview navigationcontroller

我创建了 基于视图的应用 ,这里我需要在按下按钮时在视图之间导航。 所以在第一个视图控制器中我创建了按下按钮的动作。

-(IBAction)loadSecondView:(id)sender
{
    SecondView *sView = [[SecondView alloc]initWithNibName:@"SecondView" bundle:nil];
    [self.navigationController pushViewController:sView animated:YES];
    [sView release];
}

此代码无效,我缺少任何内容,

我可以通过[self.view addSubview:sView];执行此操作,但我需要导航效果。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

您不能只将UIView实例挂钩到导航控制器,这不是它们的工作方式。

查看Xcode中的“基于导航的应用程序”模板,了解导航控制器的工作原理。

隐藏导航栏时可以使用视图控制器:

[[self navigationController] setNavigationBarHidden:YES animated:NO];

然后,您可以将UIButton实例映射到推送或弹出视图控制器的选择器,同时隐藏导航栏。

这些按钮实例是视图控制器的view属性的子视图。

隐藏导航栏有助于提供您没有使用导航控制器的错觉,同时为您提供导航控制器的所有功能。

答案 1 :(得分:1)

Alex是对的,如果你只是创建一个“基于视图的应用程序”项目,那么就没有创建UINavigationController,所以当你推送它时没有任何事情发生,这是正常的。

你必须创建一个UINavigationController并让你主视图它的rootViewController,然后你可以推它一个新的viewController。

答案 2 :(得分:0)

我有一个解决方案,

在基于View的应用程序中,appdelegate文件创建对象,查看控制器并将该视图添加到主窗口,执行我们的任务,删除mainwindow.xib中的控制器并添加UINavigation控制器,并为其创建一个对象,以及将插座连接到它,然后将此导航控制器视图添加为子视图,

工作正常。