2

こんにちは、2 つのストーリーボード ファイルを作成しましたが、それらを切り替える方法がわかりません。1 つのストーリーボード内で切り替えるには、識別子を設定し、次のコードを使用します。

[self performSegueWithIdentifier:@"identifier" sender:self];

このコードを使用してストーリーボードを切り替えると、アプリがクラッシュします。

助けてください

4

3 に答える 3

10

iOS 9.0 の更新された回答

ストーリーボードでストーリーボード参照を使用して、セグエの宛先を別のストーリーボードのビュー コントローラーに設定できます。ストーリーボード参照をオブジェクト ライブラリからソース ストーリーボードにドラッグします。宛先ストーリーボードの名前と、そのストーリーボード内の宛先ビュー コントローラーの識別子を使用して構成します。その後、参照をソース ストーリーボードのセグエの宛先として使用できます。

詳細については、ストーリーボード ヘルプの「別のストーリーボードへの参照の追加」を参照してください。

元の回答

UIStoryboard Class Referenceを見てください。

を使用して名前でストーリーボードをロードできます+[UIStoryboard storyboardWithName:bundle:]。ストーリーボード オブジェクトを取得したら、instantiateInitialViewControllerまたはinstantiateViewControllerWithIdentifier:. 次に、View Controller を使って、モーダルに表示したり、Navigation Controller にプッシュしたり、Tab Bar Controller に追加したりできます。

異なるストーリーボードのシーン間にセグエを作成することはできないため、performSegueWithIdentifier:sender:あるストーリーボードのシーンから別のストーリーボードのシーンに移行するために使用することはできません。

于 2012-12-15T09:41:17.843 に答える
7

私は自分の質問に対する答えを見つけました!

私の問題のコードは次のとおりです。

-(void)viewDidLoad {

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        CGSize result = [[UIScreen mainScreen] bounds].size;

        if(result.height == 480){}
        if(result.height == 568){[self performSelector:@selector(inch4) withObject:nil afterDelay:0];}}}



-(void)inch4 {

    UIStoryboard *storyBoard;

    storyBoard = [UIStoryboard storyboardWithName:@"iPhone4inch" bundle:nil];
    UINavigationController *init4inchViewController = [storyBoard instantiateViewControllerWithIdentifier:@"MainMenu4inch"];
    [self presentModalViewController:init4inchViewController animated:NO];

}

ストーリーボード ファイルを切り替えるコードは次のとおりです。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard2" bundle:nil];
[self presentModalViewController:[storyboard instantiateViewControllerWithIdentifier:@"storyboard2initialviewcontroller"] animated:NO];
于 2012-12-15T12:57:59.530 に答える
3

迅速に、これは以下のように簡単です。:)

    let sb = UIStoryboard(name: "DestinationStoryboard", bundle: nil)
    let vc = sb.instantiateInitialViewController() {
       present(vc, animated: true, completion: nil)
    }
于 2015-02-17T12:41:13.373 に答える