1. ホーム
  2. ios

[解決済み】プログラムによるセグエの作成

2022-04-13 02:02:27

質問

私は、共通の UIViewController すべての UIViewsControllers を拡張し、いくつかの共通の操作を再利用しています。

この"Common"にセグエを設定したいのですが。 UIViewController を使用することで、他のすべての UIViewControllers を継承する。

プログラム的にどうすればいいのか、考えています。

をどのように設定するかという質問にもなると思います。 segue を、すべての UIViewControllers ストーリーボードに入らず、手書きで行う。

どのように解決するのですか?

セグエの定義上、ストーリーボードと独立して存在することはできません。 クラスの名前にもあるくらいです。 UIStoryboardSegue . プログラム的にセグを作成するのではなく、ストーリーボードのランタイムが作成するのです。 通常、あなたは performSegueWithIdentifier: をビューコントローラのコードに含めることができますが、これはストーリーボードに参照するセグエがすでにセットアップされていることに依存します。

しかし、あなたが質問しているのは、新しいビューコントローラに移行し、すべての派生クラスで継承されるメソッドを、共通のビューコントローラ(ベースクラス)に作成する方法だと思います。 このようなメソッドをベースクラスのビューコントローラに作成することで、これを行うことができます。

- (IBAction)pushMyNewViewController
{
    MyNewViewController *myNewVC = [[MyNewViewController alloc] init];

    // do any setup you need for myNewVC

    [self presentModalViewController:myNewVC animated:YES];
}

そして、派生クラスで、適切なボタンがクリックされたり、テーブルの行が選択されたりしたときに、そのメソッドを呼び出すようにします。