instantiateViewControllerWithIdentifier - 设置了Storyboard id,但仍无法正常工作

26 objective-c ios segue

我必须以编程方式创建一个segue但是当我单击按钮时,视图控制器不会更改为下一个,故事板ID已设置且仍然无法正常工作.我是否缺少任何其他检查以使其工作?

请参阅以下代码:

EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];
Run Code Online (Sandbox Code Playgroud)

它让我很生气.谢谢

nor*_*n_h 33

在我的viewDidLoad中,我放置了调用goldStarOpen的按钮:

UIButton *btnTwo = [UIButton buttonWithType:UIButtonTypeCustom];
btnTwo.frame = CGRectMake(250, 20, 40, 40);
[btnTwo addTarget:self action:@selector(goldStarOpen) forControlEvents:UIControlEventTouchUpInside];
[btnTwo setImage:[UIImage imageNamed:@"GoldStar.png"] forState:UIControlStateNormal];
[self.view addSubview:btnTwo];
Run Code Online (Sandbox Code Playgroud)

在goldStarOpen里面,我的代码几乎与你的相同.

- (void)goldStarOpen
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
                                @"MainStoryboard" bundle:[NSBundle mainBundle]];
    UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"GoldStar"];
    [self presentViewController:myController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

goldStarOpen在故事板中激活ViewController.

您可能需要设置要加载的View Controller的Storyboard ID.它位于检查器中,位于您为视图控制器分配自定义类的位置下方.

在此输入图像描述


Lit*_*T.V 6

使用

 + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil. 
Run Code Online (Sandbox Code Playgroud)

所以试试吧

self.storyboard=[UIStoryboard storyboardWithName:@"Your_Story_Board_Name" bundle:[NSBundle mainBundle]];
EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];
Run Code Online (Sandbox Code Playgroud)