0

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

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

此代码不起作用,我缺少任何东西,

我可以做到这一点,[self.view addSubview:sView];但我需要导航效果。提前致谢。

4

3 回答 3

1

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

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

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

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

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

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

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

于 2010-07-01T07:50:42.237 回答
1

亚历克斯是对的,如果您只创建一个“基于视图的应用程序”项目,则没有创建 UINavigationController,因此当您在其上推送某些内容时,没有任何反应,这很正常。

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

于 2010-07-01T08:09:45.777 回答
0

我有一个解决方案,

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

它的工作正常。

于 2010-07-01T13:49:11.087 回答