私はObjective-Cを学んでいて、私には意味をなさない何かに出くわしました。
ストーリーボードにビューコントローラー(VC)が描画されている場合、instantiateViewControllerWithIdentifierを使用してストーリーボードIDに文字列を入力することで(ストーリーボードのVCをクリックします。ユーティリティサイドバーの[Identity Inspector]タブの[Identity]セクションで)コードを介してこのVCを呼び出すことができます。方法。
私の例では、ストーリーボードにスタンドアロンのUIViewControllerを描画し、ストーリーボードIDを「orderList」に設定しました。コードでは、このビューをこのコードCode1で呼び出すことができます:
UIViewController *ordersVC = [self.storyboard instantiateViewControllerWithIdentifier:@"orderList"];
「SCVCOrders」というUIViewControllerのサブクラスを作成し、その中に外観を変更するコードを挿入すると、タイトルの設定や背景色の変更など、このコードCode2を使用して描画されたVCを組み合わせることができると思いましたSCVCOrdersのコードで:
SCVCOrders *ordersVC = [self.storyboard instantiateViewControllerWithIdentifier:@"orderList"];
しかし、それはそれらを組み合わせません。ストーリーボードに描かれているものだけを使用します。次に、ストーリーボードで、描画されたVCのクラスをSCVCOrdersに設定します。これで、 Code2は結合された外観を提供しますが、Code1も同様です。これからの私の結論は、ストーリーボードがインスタンス化コードよりも優先されているということです。Xcodeは、ビューをコーディングするクラスを気にせず、ストーリーボードでこれを確認します。これは正しいです?
ストーリーボードで描いたものの上にコードを重ねる機能があると便利だと思います。私の例を使用して、描画したVCをジェネリッククラスのままにしておきます。そして、Code2を使用して、描画されたVCの上にコードを重ねます。または、他にどのようにこのようなことを達成できますか?