[英]How do I switch views in cocoa touch?
我在可可触摸项目中有两个名为“ view1ViewController”和“ view2ViewController”的视图控制器,它们都链接到情节提要中的UIView。 假设我在view1中放了一个按钮。 以代码方式,按下该按钮后切换到view2的最简单方法是什么? 我需要输入什么代码才能使其正常工作?
-更新-
尽管大家都告诉过我,但我仍然无法解决这个问题。 也许我没有得到什么? 我是否需要添加其他内容? 这是view1ViewController.m的代码:
#import "view1ViewController.h"
#import "view2ViewController.h"
@interface view1ViewController ()
@property (nonatomic, strong) view2ViewController *controller;
@end
@implementation view1ViewController
@synthesize controller = _controller;
- (view2ViewController *)controller
{
if (!_controller) {
_controller = [[view2ViewController alloc] init];
}
return _controller;
}
- (IBAction)buttonPressed {
[self.navigationController pushViewController:self.controller animated:YES];
}
@end
我没有触摸其他文件,并确保将情节提要中添加的视图的类设置为view2ViewController。
只是
[self.navigationController pushViewController:view2ViewController animated:YES];
简单的结果,您可以发现自己搜索了一段时间...
我假设您的应用基于导航。 如果不是这种情况,则需要初始化UINavigationController
。 例如,在您的应用程序委托中,在didFinishLaunchingWithOptions:
方法中,您可以执行以下操作
navigationController = [[UINavigationController alloc] init];
[self.window addSubview:navigationController.view];
[navigationController pushViewController:self.viewController animated:NO];
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
其中navigationController
是设置为@property
的UINavigationController
。
如果您不想设置UINavigationController
,则可以选择使用以下方式模态显示其他视图
[self presentModalViewController:view2ViewController animated:YES];
如果您尚未设置导航控制器,则此方法将不起作用。 要设置导航控制器,您需要确保当前视图是导航控制器的根视图控制器。 这可以通过编程方式完成,但是如果使用情节提要,则将视图嵌入导航控制器会容易得多。 控制器安装到位后,推动即可工作。
对于情节图板嵌入,请转到顶部菜单,然后在导航控制器中选择“ 编辑”->“嵌入”。
为了通过代码完成此操作,无论您在何处创建此视图,都应将其编写为
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:view1ViewController];
然后,在添加view1ViewController的任何位置添加导航控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.