0

私はiOS開発にかなり慣れていません。私は通常、Interface Builder を使用する代わりに、すべての UIView、UILabels、UIButton などをコードで作成します。これにより、UIViewControllers が非常に大きくなり、追跡が難しくなり、アウトレット宣言と実際のアクションおよびロジックが混在することが非常に簡単になります。

- (UIButton *) continueButton {
    // if button is nil
    if(_continueButton == nil) {
        UIButton *button        = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 

        /* more configuration */

        _continueButton = button;
    }
    return _continueButton;
}

// occures when continue button is tapped
- (void) buttonTouch:(id) sender
{
    UIButton *button = ((UIButton *)sender);

    if(button == continueButton) {
        /* do stuff */
    }
}

私が達成したいのは、実際のアクション、アニメーション、ロジックなどを分離し、ボタン、ラベル、およびその他のビューの宣言を別のファイルに保存することです。

解決策として、アウトレットを備えた別の UIViewController を作成し、「addChildViewController」を使用して、ロジックを保持するメインの子としてそれを埋め込むことを考えていました。

これは正しい方法でしょうか?どのように処理しますか?

4

1 に答える 1

2

あなたはこれについて間違った方法で進んでいると思います。IB を使用することは、ほとんどの場合に賢明なことです。Xcode は、ユーザーよりも効率的に UI 要素のコードを作成します。

また、IB とアシスタント エディターを使用すると、配線がはるかに高速かつ効率的になります。また、必要に応じてクリーンアップ コードが追加されるようにします。

実装ファイル内でコードを分離するために、私は個人的#pragma mark -に Outlet 宣言を Action 宣言から分離し、常に Action のメソッドを他のメソッドとは別に (通常は一番上に) 配置します。

また、何らかの理由で公開する必要がない限り、アウトレットのプロパティを非公開で宣言します。私の構造:

  • 一番上の私の方法
  • 次のアクション
  • 私のデリゲートメソッド
  • アップルの方法
于 2012-05-19T12:33:29.437 に答える