プログラムでセグエを作成する必要がありますが、ボタンをクリックしてもView Controllerが次に変更されず、Storyboard IDが設定されていて、まだ機能していません。この作業を行うために他のチェックがありませんか?
以下のコードをご覧ください:
EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];
私を怒らせる。ありがとう
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];
GoldStarOpenの中には、あなたのものとほとんど同じコードがあります。
- (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のストーリーボード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];
このストーリーボードを試してくださいUIViewController-> 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];
View Controller storyboard
を設定することはできません。 View Controllerの作成時に読み取り専用で設定されます。代わりに、別の場所からストーリーボードを取得するか、ロードする必要があります。
AppDelegateのルートビューコントローラーからストーリーボードを取得できます。または、+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil
を使用します。