instantiateViewControllerWithIdentifier – 故事板ID设置,但仍然无法正常工作

我必须编程创build一个segue,但是当我点击button的视图控制器不会改变到下一个,故事板ID已设置,仍然无法正常工作。 我是否错过任何其他检查,以使这项工作?

请参阅下面的代码:

EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"]; [self.navigationController pushViewController:entryController animated:YES]; 

它把我逼疯了。 谢谢

在我的viewDidLoad里面我已经放置了调用goldStarOpen的button:

 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]; 

在goldStar打开我有代码是几乎相同的你的。

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

goldStarOpen激活故事板中的ViewController。

您可能需要设置您尝试加载的View Controller的Storyboard ID。 这位于检查器中,就在您将视图控制器分配给自定义类的位置。

在这里输入图像说明

使用

  + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil. 

所以试试这个

 self.storyboard=[UIStoryboard storyboardWithName:@"Your_Story_Board_Name" bundle:[NSBundle mainBundle]]; EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"]; [self.navigationController pushViewController:entryController animated:YES]; 

试试这个StoryboardselectUIViewController-> Xcode-> Editor-> Emabed In-> Navigation Controller

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle: nil]; YourViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier: @"YourViewController"]; [self.navigationController pushViewController:vc animated:YES]; 

尝试这个,

  UIStoryboard * storyboardobj=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; EntryViewController *entryController = [storyboardobj instantiateViewControllerWithIdentifier:@"go"]; [self.navigationController pushViewController:entryController animated:YES]; 

您不能设置视图控制器storyboard 。 它是只读的,并在创build视图控制器时进行设置。 相反,您需要从其他位置获取故事板或加载它。

您可以从AppDelegate的根视图控制器获取故事板。 或者使用+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil