0

我在可可触摸项目中有两个名为“view1ViewController”和“view2ViewController”的视图控制器,它们都链接到情节提要中的 UIView。假设我在 view1 中放置了一个按钮。Codewise,按下该按钮后切换到 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。

4

2 回答 2

2

只是

[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 是一个UINavigationController集合@property

如果您不想设置一个UINavigationController ,您可以选择使用模态显示另一个视图

[self presentModalViewController:view2ViewController animated:YES];
于 2011-12-24T04:03:25.567 回答
1

如果您尚未设置导航控制器,则此方法将不起作用。要设置导航控制器,您需要确保当前视图是导航控制器的根视图控制器。这可以通过编程方式完成,但如果您使用 Storyboard,将视图嵌入导航控制器会容易得多。一旦控制器就位,推动应该起作用。

对于 Storyboard 嵌入,转到顶部菜单并选择 Edit->Embed in Navigation Controller。

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

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

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

于 2011-12-24T06:40:57.583 回答