ストーリーボードからデフォルトのビューコントローラーをオーバーライドして、別のコントローラーを表示することは可能ですか?これはAppDelegateですべて発生します。ストーリーボードのデフォルトのビューコントローラーを実行時に変更する
5
A
答えて
10
@ Martol1ni私はあなたの答えを使いたいと思っていましたが、不要なストーリーボードの乱雑さから離れていたので、少しコードを微調整しました。しかし、私はあなたに感動的な答えを+1しました。
次のすべてをデフォルトコントローラに置きます。
- (void)gotoScreen:(NSString *)theScreen
{
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:theScreen];
[app.window setRootViewController:screen];
}
ロジックが発生する場所では、必要に応じて次のように呼び出します。
if(myBool == YES) {
[self gotoScreen:@"theIdentifier"];
}
5
私は間違いなくUINavigationControllerにrootViewを埋め込むので、2つではなく3つのビューがあります。その人は、他のすべての人たちを支配するだけで、立ち上げられることはありません。次に、このようにメソッドを実装します。
- (void) decideViewController {
NSString * result;
if (myBool) {
result = @"yourIdentifier";
}
else {
result = @"yourOtherIdentifier";
}
self.navigationController.navigationBarHidden = YES; // Assuming you don't want a navigationbar
UIViewController *screen = [self.storyboard instantiateViewControllerWithIdentifier:@"view1ident"];
[self.navigationController pushViewController:screen animated:NO]; // so it looks like it's the first view to get loaded
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self decideViewController];
}
最初のビューがロードされたようなことはありません。 NIBSを使用している場合は、AppDelegateからすべてを行うことができます。
関連する問題
- 1. DataTablesの変更TableToolsデフォルトのPDFエクスポートファイル名(実行時)
- 2. 実行時のアニメーションを変更する
- 3. 実行時のレイアウトテンプレートを変更する
- 4. 実行時にテーマを変更する
- 5. 実行時にアンドロイドで実行時にEditTextのテキストを変更する方法
- 6. 実行時にListViewの行項目書体を変更する
- 7. 実行時にJList行の色を変更する
- 8. Javaで実行時に変数のデフォルト値を取得
- 9. Silverlightで実行時のボタンスタイルを変更
- 10. Jquery:バインドロード+変更を同時に実行
- 11. 実行時のシステムトレイアイコンのスタイルの変更
- 12. 実行時のmaxZoomオプションをOpenlayersのol.Viewに変更する3
- 13. 実行時にJMeterのテストプランのスレッド数を変更する
- 14. 実行時にiOS 4のアプリケーションのアイコンを変更する
- 15. Symfonyの実行時にモデルlazyloadnessを変更するには?
- 16. 実行時にpropertygridグリッドアイテムの動作を変更するには?
- 17. 実行時にgridviewセルの画像を変更するには?
- 18. 実行時にアンドロイドアプリウィジェットのサイズを変更するには?
- 19. 実行時のフォントの変更
- 20. 実行時のAndroidウィジェットの変更マージン
- 21. bash:コマンド実行時のタブタイトルの変更
- 22. .nettiers実行時の接続の変更
- 23. 実行時のVtableの変更
- 24. flex - アイテムリストのコピーを実行するときにデフォルトのカーソルを変更する
- 25. Delphi XE2/Intraweb12 - 実行時にポートを変更する/グローバル変数
- 26. wpfイメージリソースとwpfコントロールのイメージを実行時に変更する
- 27. 実行時にタブバーのタブを変更する方法
- 28. 実行時にgetClass()。getResourceAsStream(PATH)のパスを変更する
- 29. 実行時にTHREE.CubeGeometryのサイズを変更する
- 30. 実行時にPictureBoxコントロール内の画像を変更する
デフォルトのViewControllerは、最新のSDKのinfo.pListで宣言されています。スタートアップ時に何かを確認してから、どのビューコントローラがプッシュするかを決定する必要がありますか? – Martol1ni
@ Martol1niはい、あなたが言ったことはまさに私が探しているものです。 – Jacksonkr
あなたはUINavigationControllerを使用していますか? – Martol1ni