2

以前に作成された UIView コントローラーを取得する方法を教えてもらえますか?、私はストーリーボードを使用しており、instantiateViewControllerWithIdentifier: メソッドに関する Apple のドキュメントを読みましたが、このドキュメントでは、このメソッドを呼び出すたびに ViewController の新しいインスタンスが作成されると書かれています。私が望むのは、既存のものを使用することです。

ストーリーボードで UIViewController シングルトンを探しています。出来ますか?

前もって感謝します!!

4

2 に答える 2

2

一度だけ呼び出しinstantiateViewControllerWithIdentifier:て、結果を強力なプロパティとして保存して再利用する場合は、一度だけ作成することになります。

于 2012-08-16T17:53:36.157 に答える
0

私はこのような解決策を持っています:

  1. コントローラーA:

'    SingleController * B = [SingleController shareSingleController];
[self.navigationController pushViewController:con animated:YES];'

//push ControllerB 
  1. コントローラーB:

+(instancetype)shareSingleController
{
    static SingleController * single;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{    
        //a static instance from StoryBoard

        single = (SingleController *)[[UIStoryboard storyboardWithName:@"SingleController" bundle:nil]instantiateInitialViewController];
    });
    return single;'
}

テストできます。これは単一のインスタンスです。

于 2015-02-05T03:40:58.587 に答える