在单个应用程序中添加并导航到新视图

时间:2012-07-23 02:23:24

标签: ios uinavigationcontroller

这个问题可能已经回答,如果有,请分享链接。

我创建了一个单视图应用程序,它运行正常,但现在我添加了一个新视图,并且在按钮单击时,希望显示新视图。

这是点击操作的代码,

    SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:settingsViewController animated:YES];

默认ViewController现在在.h文件中显示如下

    @interface ViewController : UIViewController<UIImagePickerControllerDelegate, UINavigationControllerDelegate>

SettingsViewController.m有一个默认的

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{}

我可以像这样向“单一视图应用程序”添加另一个视图,还是应该为我的项目选择另一个模板?

感谢。

3 个答案:

答案 0 :(得分:1)

没关系。单视图应用程序模板只是一个准系统模板。您可以添加任何类型的导航。

答案 1 :(得分:1)

您需要在UINavigationController中创建AppDelegate。然后将ViewController rootViewController UINavigationControllerrootViewController。然后你就可以推送和弹出视图了。

以下是用于创建mainNavigationController的代码,其中UINavigationControllerAppDelegate中的ViewController *vc = [[ViewController alloc] init]; mainNavigationController = [[UINavigationController alloc] initWithRootViewController:vc];

ViewController

rootViewController设置为UINavigationController后,它将符合UIViewController push和pop方法,以创建{{1}} s的堆栈。

答案 2 :(得分:0)

在iOS 5中,我认为在视图之间切换有点不同,

我使用上面提到的用于切换视图的代码创建了一些应用程序。

但是现在,我必须这样写它才能发挥作用:

    SettingsViewController *settingsViewController = [[SettingsViewController alloc] initWithNibName:@"SettingsViewController" bundle:[NSBundle mainBundle]];
    [self presentModalViewController:settingsViewController animated:YES];