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
。