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

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

3
UIViewControllerのビュー内のiOSネストビューコントローラービュー?
UIViewControllerのビュー内にネストされたビューコントローラーのビューを含めることは、iOSでのプログラミングの習慣として一般的に不適切ですか?たとえば、ユーザーのタッチに反応するが、画面の25%しか占めないようなインタラクティブな要素が欲しいとしましょう。 次のように言って、このネストされたビューコントローラをUIViewControllerに追加するとします。 [self.view addSubview: nestedViewController.view];

4
Swift:カスタムViewController初期化子
UIViewControllerSwiftのサブクラスにカスタム初期化子をどのように追加しますか? UIViewController次のようなサブクラスを作成しました。 class MyViewController : UIViewController { init(leftVC:UIViewController, rightVC:UIViewController, gap:Int) { self.leftVC = leftVC; self.rightVC = rightVC; self.gap = gap; super.init(); setupScrollView(); setupViewControllers(); } } 実行すると、致命的なエラーが発生します。 致命的なエラー:クラス「MyApp.MyViewController」に実装されていない初期化子「init(nibName:bundle :)」を使用 カスタム初期化子を追加するときにオーバーライドinit(coder aDecoder:NSCoder)する必要があることinitをどこかで読んだので、それをオーバーライドして何が起こるか見てみましょう: override init(coder aDecoder: NSCoder) { super.init(coder: aDecoder); } これを追加すると、Xcodeはそれを文句を言いself.leftVC is not initialized at super.init callます。ですから、それも解決策にはなり得ないと思います。ではViewController、Swiftのサブクラスにカスタム初期化子を適切に追加するにはどうすればよいのでしょうか(Objective-Cではこれは問題ではないようです)。

4
dismissModalViewControllerそしてデータを返します
firstViewControllerとsecondViewControllerの2つのビューコントローラがあります。私はこのコードを使用してsecondViewControllerに切り替えています(文字列も渡しています): secondViewController *second = [[secondViewController alloc] initWithNibName:nil bundle:nil]; second.myString = @"This text is passed from firstViewController!"; second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:second animated:YES]; [second release]; 次に、secondViewControllerでこのコードを使用して、firstViewControllerに切り替えます。 [self dismissModalViewControllerAnimated:YES]; これはすべて正常に機能します。私の質問は、firstViewControllerにデータを渡すにはどうすればよいですか?secondViewControllerからfirstViewControllerに別の文字列を渡したいのですが。

4
SwiftのUIViewControllerでデフォルトのsuper.init()を呼び出せないのはなぜですか?
UIViewControllerストーリーボードからを使用しておらず、オブジェクトのinitを渡すカスタム関数が必要ですNSManagedObjectID。super.init()Objective-Cと同じように電話をかけたいだけです。このような: init(objectId: NSManagedObjectID) { super.init() } しかし、次のコンパイラエラーが発生します。 スーパークラスUIViewControllerの指定された初期化子を呼び出す必要があります 私は単にこれをもうすることができませんか?

6
モーダルビューコントローラー-表示と非表示の方法
複数のViewControllerの表示と非表示に関する問題を解決する方法について、この1週間頭を悩ませています。サンプルプロジェクトを作成し、プロジェクトから直接コードを貼り付けました。3つのViewControllerとそれに対応する.xibファイルがあります。MainViewController、VC1およびVC2。メインビューコントローラーに2つのボタンがあります。 - (IBAction)VC1Pressed:(UIButton *)sender { VC1 *vc1 = [[VC1 alloc] initWithNibName:@"VC1" bundle:nil]; [vc1 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; [self presentViewController:vc1 animated:YES completion:nil]; } これにより、VC1が問題なく開きます。VC1には、VC1を閉じると同時にVC2を開く必要がある別のボタンがあります。 - (IBAction)buttonPressedFromVC1:(UIButton *)sender { VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil]; [vc2 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; [self presentViewController:vc2 animated:YES completion:nil]; [self dismissViewControllerAnimated:YES completion:nil]; } // This shows a warning: Attempt to dismiss from …

19
提示されたViewControllerが閉じられたことを検出します
たとえば、VC2というビューコントローラクラスのインスタンスがあるとします。VC2には、それ自体を閉じる「キャンセル」ボタンがあります。しかし、「キャンセル」ボタンがトリガーされたときに、コールバックを検出または受信できません。VC2はブラックボックスです。 ビューコントローラ(VC1と呼ばれる)は、presentViewController:animated:completion:メソッドを使用してVC2を表示します。 VC2が却下されたときにVC1はどのようなオプションを検出する必要がありますか? 編集:@rory mckinnelのコメントと@NicolasMiariの回答から、私は次のことを試しました: VC2の場合: -(void)cancelButton:(id)sender { [self dismissViewControllerAnimated:YES completion:^{ }]; // [super dismissViewControllerAnimated:YES completion:^{ // // }]; } VC1の場合: //-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^ _Nullable)(void))completion { NSLog(@"%s ", __PRETTY_FUNCTION__); [super dismissViewControllerAnimated:flag completion:completion]; // [self dismissViewControllerAnimated:YES completion:^{ // // }]; } しかし、dismissViewControllerAnimatedVC1のは呼び出されていませんでした。

7
別のViewControllerのサブビューとしてViewControllerを追加する
この問題に関する投稿はほとんど見つかりませんでしたが、いずれも私の問題を解決しませんでした。 私のように言ってください。 ViewControllerA ViewControllerB ViewControllerAのサブビューとしてViewControllerBを追加しようとしましたが、「fatal error: unexpectedly found nil while unwrapping an Optional value」のようなエラーがスローされます。 以下はコードです... ViewControllerA var testVC: ViewControllerB = ViewControllerB(); override func viewDidLoad() { super.viewDidLoad() self.testVC.view.frame = CGRectMake(0, 0, 350, 450); self.view.addSubview(testVC.view); // Do any additional setup after loading the view. } ViewControllerBは、ラベルが含まれている単純な画面です。 ViewControllerB @IBOutlet weak var test: UILabel! …

21
presentModalViewControllerを使用して透明なビューを作成する方法
モーダルビューを表示しています [self presentModalViewController:controller animated:YES]; ビューが画面を上に移動すると、ビューが作成されたxibファイルの設定に従って透明になりますが、画面がいっぱいになると不透明になります。 ビューを透明に保つ方法はありますか? モーダルビューが不透明になっているのではなく、配置されているビューがレンダリングされていないのではないかと思います。

5
新しいiOS 13モーダルプレゼンテーション:プレゼンテーションコントローラーが下に移動しない
iOS 13でUIViewControllersをモーダルに表示すると、奇妙な動作が発生します。iOS13全体で見た新しいプレゼンテーションスタイルは、次のようになります。 提示するビューコントローラは、提示されるビューコントローラの背後に表示されます。また、「スタック」を模倣するために下にシフトされます 一方、私のアプリを介してビューコントローラーを提示するとき、私はこの効果を得続けます: 新しいビューコントローラを提示するときに、提示するビューコントローラがまったく移動しない このコードを使用して、このビューコントローラを表示します。 let controller = storyboard?.instantiateViewController(withIdentifier: "tutorial") as! TutorialController controller.modalPresentationStyle = .pageSheet controller.modalTransitionStyle = .coverVertical present(controller, animated: true, completion: nil) これが私の質問です: なぜこれが起こっているのか、そしてビューコントローラーを通常のiOS 13スタイルで表示する方法(ビューコントローラーを元に戻す)があるのか​​どうか疑問に思っています。 前もって感謝します!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.