OStack程序员社区-中国程序员成长平台

标题: ios - 以编程方式打开一个新的 View Controller 给我一个黑屏 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:02
标题: ios - 以编程方式打开一个新的 View Controller 给我一个黑屏

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

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

- (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath
{
    dealViewController=[[DealViewController alloc]init];
    if (indexPath.row==0){
        [self presentModalViewControllerUIViewController *)dealViewController animated:TRUE];
    }

}

在我的另一个 Controller 中:

@implementation DealViewController

- (id)initWithNibNameNSString *)nibNameOrNil bundleNSBundle *)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];

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



Best Answer-推荐答案


试试这个:

Apple Doc for StoryBoard

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

A Good Tutorial on same

   - (void)tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath
    {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName"<Your StoryBoard_Name" bundle:nil];

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

    }

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






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4