繁体   English   中英

如何在可可粉中切换视图?

[英]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是设置为@propertyUINavigationController

如果您不想设置UINavigationController ,则可以选择使用以下方式模态显示其他视图

[self presentModalViewController:view2ViewController animated:YES];

如果您尚未设置导航控制器,则此方法将不起作用。 要设置导航控制器,您需要确保当前视图是导航控制器的根视图控制器。 这可以通过编程方式完成,但是如果使用情节提要,则将视图嵌入导航控制器会容易得多。 控制器安装到位后,推动即可工作。

对于情节图板嵌入,请转到顶部菜单,然后在导航控制器中选择“ 编辑”->“嵌入”。

为了通过代码完成此操作,无论您在何处创建此视图,都应将其编写为

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:view1ViewController];

然后,在添加view1ViewController的任何位置添加导航控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM