[解決済み] プッシュされたコントローラからRootViewControllerを取得するには?
2022-05-28 22:34:11
質問
ということで、RootViewControllerからビューコントローラーをプッシュしています。
[self.navigationController pushViewController:anotherViewController animated:YES] ;
しかし、FROM
anotherViewController
で、再びRootViewControllerにアクセスしたい。
を試しています。
// (今はanotherViewControllerの中) ///RootViewController *root = (RootViewController*)self.parentViewController ; // だめです。 // err RootViewController *root = (RootViewController*)[self.navigationController.viewControllers objectAtIndex:0] ; // YES!!うまくいった。
なぜこれが動作するのか、またその方法がベストなのかよくわかりません。 RootViewControllerのnavigationControllerにプッシュしたコントローラからRootViewControllerを取得する良い方法と、私がやった方法が信頼できるかどうか、誰かコメントできませんか?
どのように解決するのですか?
この場合 viewControllers プロパティを使用します。コード例です。
// Inside another ViewController
NSArray *viewControllers = self.navigationController.viewControllers;
UIViewController *rootViewController = [viewControllers objectAtIndex:viewControllers.count - 2];
これは、"back" ビューコントローラを取得する標準的な方法です。そのため
objectAtIndex:0
が機能する理由は、アクセスしようとしているビューコントローラがルートでもあるからです。もしナビゲーションの奥深くにいたなら、バックビューはルートビューと同じものではありません。
関連
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] 文字列の長さを取得する
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] UIViewに角丸をつける
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] Unwind segueは何に使うのか、どう使うのか?
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] UIViewの角丸とドロップシャドウ?
-
[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
-
[解決済み] Swiftで配列に要素を追加する