gpt4 book ai didi

ios - 如何显示 View ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:04:37 25 4
gpt4 key购买 nike

我是 iOS 开发新手。

我有一个带按钮的 ViewController ViewController。当用户按下该按钮时,我想将 View 切换到 RegisterViewController

ViewController.m 包含以下代码:

#import "ViewController.h"
#import "RegisterViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize registerViewButton;

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}


- (IBAction)registerViewButtonClick:(id)sender {
NSLog(@"registerViewButtonClick called");

RegisterViewController* controller = [[RegisterViewController alloc] init];
[self.navigationController pushViewController:controller animated:YES];
}

@end

根据调试输出,当我按下按钮时,实际上调用了 registerViewButtonClick 方法。

但是RegisterViewController代表的 View 没有出现。

应用代码可用here .

当按下按钮时,我需要更改什么才能使 RegisterViewController 的 View 可见?

最佳答案

我运行了您的代码,发现您的代码中没有实现导航 Controller ,但您正在尝试推送 registerViewController。尝试像下面这样呈现 View Controller :

[self presentViewController:controller animated:YES completion:nil];

代替

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

pushViewController 只有在有 UINavigationController 时才起作用。根据文档,UINavigationController 类实现了一个专门的 View Controller ,用于管理分层内容的导航。因为,您的代码中没有 UINavigationController(self.navigationController 在本例中为 nil),所以当您尝试推送 viewController 时没有任何反应。

UINavigationController 在您想要维护一堆 viewController 时也很方便,您可以根据需要在其中推送或弹出。这也会自动为您提供“后退”按钮。如果您的需要只是呈现一个 View Controller ,那么 presentViewController: 可能是正确的选择。

关于ios - 如何显示 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24205728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com