26

プログラムでセグエを作成する必要がありますが、ボタンをクリックしてもビューコントローラーが次のように変更されず、ストーリーボード ID が設定されていて、まだ機能していません。これを機能させるために、他のチェックが欠けていますか?

以下のコードを参照してください。

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

それは私を怒らせます。ありがとう

4

6 に答える 6

34

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 をアクティブにします。

ロードしようとしているビュー コントローラーのストーリーボード ID を設定する必要がある場合があります。これは、ビュー コントローラーにカスタム クラスを割り当てる場所のすぐ下のインスペクターにあります。

ここに画像の説明を入力

于 2013-11-01T12:28:02.217 に答える
6

使用する

 + (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];
于 2013-06-13T13:26:46.073 に答える
4

このストーリーボードを試してください 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];
于 2015-07-14T06:16:44.127 に答える
2

これを試して、

 UIStoryboard *    storyboardobj=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

 EntryViewController *entryController = [storyboardobj instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];
于 2013-06-13T13:37:34.057 に答える
0

ビュー コントローラーを設定することはできませんstoryboard。これは読み取り専用で、View Controller の作成時に設定されます。代わりに、別の場所からストーリーボードを取得するか、ロードする必要があります。

AppDelegate のルート ビュー コントローラーからストーリーボードを取得できます。または使用します+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil

于 2013-06-13T13:28:01.133 に答える