どのようにして、アプリケーションデリゲートのビューからモーダルビューコントローラを表示できますか? UIViewからモーダルビューコントローラを表示しようとすると、混乱しました。presentModalViewControllerのデリゲート
答えて
アプリケーションデリゲートはビューを管理しません。 -application:didFinishLaunchingWithOptions:
で画面に表示される最初のビューコントローラの-viewDidAppear:
メソッドからモーダルビューコントローラを表示する必要があります。
rootViewController
を使用してください。任意のビューコントローラサブクラスからモーダルビューコントローラを表示できます。ルートVCがUITabBarControllerである場合は、行うことができます。
[self.tabBarController presentModalViewControllerAnimated:YES]
た場合、またはそのナビゲーションコントローラを:
[self.navigationController presentModalViewControllerAnimated:YES]
など
EDIT:MVC
ことでMVCパターンを破っているビュー内からコントローラを表示しようとしています。一般的に、ビューは、ユーザーインターフェイスの状態をコントローラに通知するために、その外観と公開インターフェイスに関係しています。たとえば、ビューにUIButton
があり、モーダルビューコントローラを表示したい場合は、ビューをハードワイヤ化しないでください。代わりに、コントローラがビューをインスタンス化するとき、コントローラは適切なモーダルビューコントローラを提示できるアクションとしてtouchUpInside
アクションを受け取るターゲットとして自分自身を設定することによってボタンを設定します。
コントローラの作業を行うために、ビュー自体にはこのコンテキスト上の知識はありません。
UIWindow
を新規に作成し、windowLevel
プロパティを設定し、UIViewController
をそのウィンドウに表示するのが最も良い方法です。
これはどのようにUIAlertView
の仕事です。
インタフェース
@interface MyAppDelegate : NSObject <UIApplicationDelegate>
@property (nonatomic, strong) UIWindow * alertWindow;
...
- (void)presentCustomAlert;
@end
実装:
@implementation MyAppDelegate
@synthesize alertWindow = _alertWindow;
...
- (void)presentCustomAlert
{
if (self.alertWindow == nil)
{
CGRect screenBounds = [[UIScreen mainScreen] bounds];
UIWindow * alertWindow = [[UIWindow alloc] initWithFrame:screenBounds];
alertWindow.windowLevel = UIWindowLevelAlert;
}
SomeViewController * myAlert = [[SomeViewController alloc] init];
alertWindow.rootViewController = myAlert;
[alertWindow makeKeyAndVisible];
}
@end
魅力的な作品です。 –
すばらしく便利な回答 – Fattie
- 1. presentModalViewController iPhone
- 2. CGRectのpresentModalViewController
- 3. IPhoneアプリケーションのPresentModalViewController
- 4. presentModalViewController問題
- 5. アプリケーションクラッシュon presentmodalviewcontroller
- 6. ios uidatepicker with presentModalViewController
- 7. EXC_BAD_ACCESSエラーPresentModalViewController
- 8. presentModalViewController not working
- 9. UITabBar navigationとpresentModalViewController
- 10. presentModalViewController from UIModalTransitionStylePartialCurl viewController
- 11. presentModalViewControllerがpushviewcontrollerメモリcosumption
- 12. iPhone - presentModalViewController from right from
- 13. presentModalViewControllerとpresentViewControllerの違いは?
- 14. ios5 presentmodalviewcontroller複数のビュー
- 15. iOS - pushViewControllerとpresentModalViewControllerの違い
- 16. presentModalViewControllerに関する質問
- 17. presentModalViewController UIViewController内のUITableViewからの親の
- 18. ナビゲーションコントローラのプッシュビューと同じアニメーションのPresentModalViewController?
- 19. presentModalViewController不思議なゾンビの結果
- 20. presentModalViewControllerアニメーションの完了を検出する
- 21. ストーリーボードのPresentModalViewControllerはプログラム的にiOS 5
- 22. デリゲート
- 23. の違い - initWithRequest:デリゲート:と+ connectionWithRequest:デリゲート
- 24. もっと使いやすい方法デリゲートをデリゲートするデリゲート
- 25. presentModalViewControllerはnaviagionbarを表示しません
- 26. presentModalViewControllerメソッドが機能しない理由
- 27. presentModalViewControllerでビューを追加する
- 28. ストーリーボードでpresentModalViewControllerを使用する
- 29. デリゲートの問題
- 30. デリゲートの詳細
私は実際のUIViewからmodalViewControllerを提示しようとし、そして、最上位のViewController上の任意のアイデアを、これを提示しようとしていますか? – adit
モーダルビューコントローラは、他のビューコントローラでのみ表示できます。彼らが管理するビューには、他のビューコントローラはもちろんのこと、自分のコントローラについての知識もありません。 –
この回答はOPの誤解のいくつかを指摘していますが、本当にその質問には答えません。私の答えを見てください:UIWindow – Steve