タグ付けされた質問 「uiviewcontroller」

UIViewControllerクラスは、iOSアプリのビューを管理し、アプリのビュー、その基礎となるモデルオブジェクト、および全体的なワークフロー間の相互作用を仲介します。

4
UIViewController viewDidLoad対viewWillAppear:適切な分業は何ですか?
私はいつもに割り当てる必要があるタスクの種類のビットが不明確となっているviewDidLoad対viewWillAppear中:UIViewControllerサブクラス。 たとえば、UIViewControllerサブクラスでサーバーにアクセスし、データを取得してビューにフィードし、そのビューを表示するアプリを実行しています。viewDidLoad対これを行うことの長所と短所は何viewWillAppearですか?

6
致命的なエラー:クラスに実装されていない初期化子 'init(coder :)'を使用しています
私は残りのプロジェクトをSwiftで継続することにしました。カスタムクラス(のサブクラスUIViewcontroller)をストーリーボードビューコントローラーに追加してプロジェクトをロードすると、次のエラーでアプリが突然クラッシュします。 致命的なエラー:クラスに実装されていない初期化子 'init(coder :)'を使用しています これはコードです: import UIKit class TestViewController: UIViewController { init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) // Custom initialization } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any …

16
UIViewControllerの上にclearColor UIViewControllerを表示します
私はUIViewControllerのようにビューをサブビュー/モーダル別の上UIViewController図は、そのようなものとサブビュー/モーダル透明であるべきであり、どのコンポーネントが見えるはずサブビューに追加されます。問題は、サブビューがclearColorを持つ代わりに黒の背景を表示することです。私はUIView黒の背景ではなくclearColor として作ろうとしています。誰かがそれの何が悪いのか知っていますか?どんな提案も歓迎します。 FirstViewController.m UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]; [vc setModalPresentationStyle:UIModalPresentationFullScreen]; [self presentModalViewController:vc animated:NO]; SecondViewController.m - (void)viewDidLoad { [super viewDidLoad]; self.view.opaque = YES; self.view.backgroundColor = [UIColor clearColor]; } 解決済み:問題を修正しました。iPhoneとiPadの両方でうまく機能しています。黒い背景のないモーダルビューコントローラーは、clearColor / transparentです。変更する必要があるのは、に置き換えるUIModalPresentationFullScreenことだけUIModalPresentationCurrentContextです。とても簡単です。 FirstViewController.m UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]; vc.view.backgroundColor = …

6
ナビゲーションコントローラースタック、サブビュー、モーダルコントローラーを使用せずにビューコントローラーの変化をアニメーション化しますか?
NavigationControllerには、管理するViewControllerスタックがあり、アニメーションの遷移が制限されています。 既存のビューコントローラーにビューコントローラーをサブビューとして追加するには、イベントをサブビューコントローラーに渡す必要があります。これは、管理が面倒であり、煩わしさがほとんどなく、実装時に一般に悪いハックのように感じられます(Appleはまた、これを行う)。 モーダルビューコントローラーを再び表示すると、ビューコントローラーが別のビューコントローラーの上に配置され、上記のイベントパッシングの問題はありませんが、ビューコントローラーを実際に「スワップ」するのではなく、スタックします。 ストーリーボードはiOS 5に限定されており、ほぼ理想的ですが、すべてのプロジェクトで使用できるわけではありません。 誰かが上記の制限なしにView Controllerを変更する方法についてソリッドコード例を提示し、それらの間のアニメーション化された遷移を可能にすることができますか? 近い例ですが、アニメーションはありません: ナビゲーションコントローラーなしで複数のiOSカスタムビューコントローラーを使用する方法 編集:ナビゲーションコントローラーの使用は問題ありませんが、アニメーション化されたトランジションスタイル(単なるスライドエフェクトではない)が必要です。表示されているビューコントローラーは完全に(スタックではなく)交換する必要があります。2番目のビューコントローラーがスタックから別のビューコントローラーを削除する必要がある場合、十分にカプセル化されていません。 編集2:iOS 4がこの質問のベースOSである必要があります。ストーリーボード(上記)について言及するときは、それを明確にすべきでした。


5
iOS 13で提示されたView Controllerのインタラクティブな終了を無効にする
iOS 13では、モーダルで表示されるビューコントローラーの新しいデザインmodalPresentationStyle .pageSheet(およびその兄弟.formSheet)が導入されています… …また、表示されたビューコントローラを下にスライドすることで、これらのシートを閉じることができます(インタラクティブな閉じます)。新しい「pull-to-dismiss」機能はかなり便利ですが、常に望ましいとは限りません。 質問:インタラクティブな解雇をオフにするにはどうすればよいですか? -プレゼンテーションスタイルは同じに保つことに注意してください。

13
viewWillDisappear:ビューコントローラーがポップされているか、サブビューコントローラーが表示されているかを確認します
この問題の適切な解決策を見つけるのに苦労しています。ビューコントローラーの-viewWillDisappear:メソッドでは、ビューコントローラーがナビゲーションコントローラーのスタックにプッシュされているためか、ポップされたためにビューコントローラーが消えているためかを判断する方法を見つける必要があります。 現時点では、次のようなフラグを設定してisShowingChildViewControllerいますが、かなり複雑になっています。私がそれを検出できると思う唯一の方法は-deallocメソッドです。

19
AppDelegate.mの画面に現在表示されているUIViewControllerを取得します。
UIViewController画面上の電流は、いくつかのバッジビューを設定することにより、APNからのプッシュ通知に応答する必要があります。しかし、どのように私は得ることができるUIViewController方法でapplication:didReceiveRemoteNotification:でAppDelegate.m? 私self.window.rootViewControllerは現在の表示を取得するために使用しようとしましたUIViewController、それはUINavigationViewControllerまたは他の種類のビューコントローラかもしれません。また、のvisibleViewControllerプロパティをUINavigationViewController使用UIViewControllerして画面に表示できることを確認しました。しかし、それがでない場合はどうすればよいUINavigationViewControllerですか? どんな助けでもありがたいです!関連コードは以下の通りです。 AppDelegate.m ... - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //I would like to find out which view controller is on the screen here. UIViewController *vc = [(UINavigationViewController *)self.window.rootViewController visibleViewController]; [vc performSelector:@selector(handleThePushNotification:) withObject:userInfo]; } ... ViewControllerA.m - (void)handleThePushNotification:(NSDictionary *)userInfo{ //set some badge view here }

16
ビューコントローラーがモーダルに表示されているか、ナビゲーションスタックにプッシュされているかを確認するにはどうすればよいですか?
ビューコントローラーのコードで、次の違いをどのように区別できますか? モーダルで提示された ナビゲーションスタックにプッシュ どちらpresentingViewControllerとisMovingToParentViewControllerされているYES両方のケースでは、とても便利ではありません。 状況を複雑にしているのは、私の親のビューコントローラーが時々モーダルであり、その上にチェック対象のビューコントローラーがプッシュされることです。 私の問題は、私が私のHtmlViewController中に埋め込むことであり、UINavigationControllerそれが次に提示されることです。それが、私自身の試みと以下の良い答えがうまくいかなかった理由です。 HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil]; ビューコントローラーがモーダルであるかどうかを判断するのではなく、判断する方がいいと思います。

21
UIPageViewControllerのスワイプジェスチャーを無効にするにはどうすればよいですか?
私の場合、親をUIViewController含む、UIPageViewControllerを含む、UINavigationControllerを含むUIViewController。最後のビューコントローラーにスワイプジェスチャーを追加する必要がありますが、スワイプはページビューコントローラーに属しているかのように処理されます。これをプログラムとxibの両方で実行しようとしましたが、結果はありませんでした。 だから私は理解しているようにUIPageViewController、ジェスチャーを処理するまで目標を達成することはできません。この問題を解決するには?

4
ストーリーボード-AppDelegateのViewControllerを参照
次のシナリオを考えてみます。ストーリーボードベースのアプリがあります。ViewControllerオブジェクトをストーリーボードに追加し、このViewControllerのクラスファイルをプロジェクトに追加して、IB IDインスペクターで新しいクラスの名前を指定します。AppDelegateからプログラムでこのViewControllerを参照するにはどうすればよいですか?関連するクラスを使用して変数を作成し、それをIBOutletプロパティに変換しましたが、コードで新しいViewControllerを参照する方法が何もありません。接続をCtrlキーを押しながらドラッグしようとしても機能しません。 。 つまり、AppDelegate内で、次のようにベースのViewControllerにアクセスできます。 (MyViewController*) self.window.rootViewController しかし、ストーリーボードに含まれている他のViewControllerはどうですか?

14
複数のサブクラスに単一のストーリーボードuiviewcontrollerを使用する方法
UINavigationController最初のビューコントローラーを含むストーリーボードがあるとします。ルートビューコントローラはのサブクラスUITableViewControllerですBasicViewController。これはIBAction、ナビゲーションバーの右のナビゲーションボタンに接続されています 。追加のストーリーボードを作成せずに、ストーリーボードを他のビューのテンプレートとして使用したいと思います。これらのビューはまったく同じインターフェースが、ルート・ビュー・クラスのコントローラを持つことになりますと言うSpecificViewController1とSpecificViewController2のサブクラスですBasicViewController。 これらの2つのビューコントローラーは、IBActionメソッドを除いて同じ機能とインターフェイスを備えています。 次のようになります。 @interface BasicViewController : UITableViewController @interface SpecificViewController1 : BasicViewController @interface SpecificViewController2 : BasicViewController そのようなことはできますか? ストーリーボードをインスタンス化することはできますが、BasicViewControllerサブクラス化するルートビューコントローラーがSpecificViewController1ありSpecificViewController2ますか? ありがとう。

13
提示されたView Controllerを閉じる
理論的な質問があります。さて、AppleのViewControllerガイドを読んでいます。 彼らが書きました: 提示されたビューコントローラーを却下するときがきたとき、推奨されるアプローチは、提示されたビューコントローラーに却下することです。言い換えると、可能な場合は常に、View Controllerを提示した同じView Controllerがそれを閉じる責任も負う必要があります。提示されたビューコントローラを閉じる必要があることを提示するビューコントローラに通知するためのいくつかの手法がありますが、好ましい手法は委譲です。 私が提示VCでのプロトコルを作成し、デリゲートvaribleを追加し、提示VCを退けるためにVCを提示してデリゲートメソッドを作成する必要がありますしかし、なぜ私の代わりに、単純なコールを、説明することはできません提示ビューコントローラメソッド [self dismissViewControllerAnimated:NO completion:nil]? なぜ最初の選択肢が優れているのですか?Appleが推奨する理由

4
カスタムiOSビュークラスを作成し、その複数のコピーをインスタンス化するにはどうすればよいですか(IBで)?
現在、基本的にすべて同じである複数のタイマーを備えたアプリを作成しています。 タイマーのすべてのコードとレイアウト/アニメーションを使用するカスタムクラスを作成したいので、互いに独立して動作する5つの同一のタイマーを持つことができます。 私はIB(xcode 4.2)を使用してレイアウトを作成し、タイマーのすべてのコードは現在、viewcontrollerクラスに含まれています。 すべてをカスタムクラスにカプセル化し、それをビューコントローラーに追加する方法に頭を悩ませています。何か助けていただければ幸いです。

18
popViewControllerの完了ブロック
を使用してモーダルビューコントローラーを閉じる場合dismissViewController、完了ブロックを提供するオプションがあります。同様の同等物はありpopViewControllerますか? 完了の引数は非常に便利です。たとえば、モーダルが画面から消えるまでテーブルビューから行を削除するのを保留して、ユーザーに行のアニメーションを表示させることができます。プッシュされたビューコントローラーから戻るときも同じ機会が欲しいです。 アニメーションブロックに配置popViewControllerしてみましたUIViewが、完了ブロックにアクセスできます。ただし、これにより、ポップされるビューに不要な副作用が生じます。 そのような方法が利用できない場合、いくつかの回避策は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.