4

モーダル ビューを表示する次のコードを見つけました。

- (void)add:(id)sender {
   // Create the root view controller for the navigation controller
   // The new view controller configures a Cancel and Done button for the
   // navigation bar.
   RecipeAddViewController *addController = [[RecipeAddViewController alloc]
                       initWithNibName:@"RecipeAddView" bundle:nil];
   addController.delegate = self;

   // Create the navigation controller and present it modally.
   UINavigationController *navigationController = [[UINavigationController alloc]
                             initWithRootViewController:addController];
   [self presentModalViewController:navigationController animated:YES];


   // The navigation controller is now owned by the current view controller
   // and the root view controller is owned by the navigation controller,
   // so both objects should be released to prevent over-retention.
   [navigationController release];
   [addController release];
}

私の質問は、このコードをどのように実装するかです (buttonPress メソッドに配置します)。

ヘッダー ファイルで何かを定義する必要がありますか? 私を混乱させるビットは、アップルがこれを提供し、ヘッダーファイルを提供しないため、そこに何かがあるかどうかわかりませんか?

コードは RecipieAddViewController を参照していますが、これを "UIViewController" で置き換えるにはどうすればよいですか?

ヘッダーファイルにデリゲートとして何を入れますか? これを他の場所に設定する必要がありますか? プロパティのように?

buttonPress メソッドでこのコードをコピーして機能させるには、他に何かする必要がありますか?

質問ありがとうございます。

4

1 に答える 1

4

私の質問は、このコードをどのように実装するかです (buttonPress メソッドに配置します)。

IBActionメソッドをlikeとして定義し-(IBAction)add:(id)sender、インターフェイス ビルダーでボタンのtouch up insideイベントをビュー コントローラー オブジェクトのadd:アクション アウトレットにバインドします。

ヘッダー ファイルで何かを定義する必要がありますか? 私を混乱させるビットは、アップルがこれを提供し、ヘッダーファイルを提供しないため、そこに何かがあるかどうかわかりませんか?

いいえ。UIKit.h 通常、メソッドを追加したり、インスタンス変数を追加したり、カスタム クラスを含めたりするには、ヘッダーを変更する必要があります。#import RecipeAddViewController.hただし、そのクラスを使用するには、どこか (ヘッダーまたは実装ファイル内)が必要になる場合があります。これは、作成したカスタム クラスを別のファイルで使用する場合に当てはまります。

コードは RecipieAddViewController を参照していますが、これを「UIViewController」と置き換えるにはどうすればよいですか?

これを、プッシュするビュー コントローラー クラスに置き換えます。 UIViewControllerそれ自体が裸で役立つことはめったにありません。サブクラス化されています。から継承する新しいクラスを作成し、そのUIViewControllerヘッダーをインポートし、そのインスタンスを作成して、ナビゲーション コントローラーにプッシュします。

于 2010-02-24T09:02:45.697 に答える