[解決済み] UIViewからUIViewControllerへ?
2022-04-13 03:36:21
質問
を取得するビルトインの方法はありますか?
UIView
からその
UIViewController
? から取得できるのは知っています。
UIViewController
をその
UIView
を経由して
[self view]
が、逆参照はないのかなと?
どのように解決するのですか?
長い間、この回答が受け入れられてきたので、より良い回答で修正する必要があると感じています。
必要性についてのコメントもあります。
- ビューは、ビューコントローラに直接アクセスする必要がないようにします。
- その代わり、ビューはビューコントローラーから独立し、異なるコンテキストで動作できるようにする必要があります。
- ビューがビューコントローラと何らかの形でインターフェースする必要がある場合、推奨される方法、そしてAppleがCocoaで行っている方法は、デリゲートパターンを使用することです。
以下に、その実装例を示します。
@protocol MyViewDelegate < NSObject >
- (void)viewActionHappened;
@end
@interface MyView : UIView
@property (nonatomic, assign) MyViewDelegate delegate;
@end
@interface MyViewController < MyViewDelegate >
@end
ビューは、そのデリゲートとインターフェイスします (
UITableView
そして、その実装がビューコントローラにあるかどうか、 あるいは最終的に使用する他のクラスにあるかどうかは気にしません。
私の当初の回答は以下の通りです。 これはお勧めしませんし、ビューコントローラに直接アクセスする他の回答もお勧めしません。
ビルトインの方法はありません。を追加することで回避することができます。
IBOutlet
の上に
UIView
を作成し、Interface Builderでこれらを接続することは推奨されません。ビューはビューコントローラのことを知るべきではないのです。その代わり、@Phil M が提案するように、デリゲートとして使用するプロトコルを作成する必要があります。
関連
-
[解決済み】ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] ペン先を読み込んだが、「表示」コンセントが設定されていない
-
[解決済み] UIViewに角丸をつける
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] UIViewのサブクラス化のための適切なプラクティス?
-
[解決済み】UIViewのフレーム、バウンド、センター
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み】iOSで最上位のビューコントローラーを見つける方法
-
[解決済み] ビューを指定し、そのビューコントローラを取得するには?