gpt4 book ai didi

ios - 以编程方式打开一个新的 View Controller 给我一个黑屏

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

我检查过类似的问题,但没有一个适用于我的情况(他们都提到了我没有的函数 loadView)。我认为我想做的事情很容易,但我不明白为什么会这样。

我想在按下单元格中的按钮时以编程方式打开新的 View Controller 。这是我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
dealViewController=[[DealViewController alloc]init];
if (indexPath.row==0){
[self presentModalViewController:(UIViewController *)dealViewController animated:TRUE];
}

}

在我的另一个 Controller 中:

@implementation DealViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"Opened");
}

打印了 Opened 但模拟器显示黑屏。我也试过这个:

dealViewController=[[DealViewController alloc]initWithNibName:@"DealViewController" bundle: nil];

但是我遇到了段错误。我做错了什么?

最佳答案

试试这个:

Apple Doc for StoryBoard

另外,您可以通过 performSegue:withIdentifier 来完成。

A Good Tutorial on same

   - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"<Your StoryBoard_Name" bundle:nil];

dealViewController=[storyboard instantiateViewControllerWithIdentifier:@"ViewController_Identifiter"];
if (indexPath.row==0){
[self presentModalViewController:(UIViewController *)dealViewController animated:TRUE];
}

}

关于ios - 以编程方式打开一个新的 View Controller 给我一个黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17422131/

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