1

私はいくつかのViewControllerを持つアプリに取り組んでおり、ほとんどすべてのUIViewControllerからアクセスしたい特定のViewController「ログインViewController」があります。各コントローラーからLoginViewControllerへのセグエを使用することでこれを達成できることを知っています確かに最善の解決策ではありません。これを達成するための最良の解決策は何ですか?

4

4 に答える 4

7

これを使用してください...変数vcは、探しているビューコントローラーを返します

  UIStoryboard *aStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
  YourViewController *vc = [aStoryboard instantiateViewControllerWithIdentifier:@"YourViewController"];
于 2013-05-15T08:45:40.940 に答える
1

あなたはおそらくこのようなことをすることができます

static LoginViewController *instance; //place in the implementation

- (void) viewDidLoad {
     instance = self;
}

+(LoginViewController *) getInstance { //use this method to access the instance (declare in header)
    return instance;
}

次に、アクセスする必要があるヘッダーをインポートするだけで完了です

于 2013-05-15T08:43:23.333 に答える
0

ログインビューコントローラーを必要とするすべてのコントローラーによってサブクラス化されるベースビューコントローラーを作成することをお勧めします。次に、ベース viewController で、次のようなメソッドを作成できます。

-(YourLoginViewController*)giveMeTheLoginController {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboardName" bundle:nil];
    YourLoginViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"YourLoginViewControllerIdentifier"];
    return viewController;
}

別のベース ビュー コントローラーが必要ない場合は、ビュー コントローラーで同じメソッドを使用して、ストーリーボードからビュー コントローラーの新しいインスタンスを取得できます。

また、各View Controllerのセグエを使用するのも良い方法です。セグエはナビゲーションを定義するために使用されます。

于 2013-05-15T08:46:06.847 に答える