1

「[[UINavigationControlleralloc]initWithRootViewController:newItemController];」を介してモーダルに表示される子UINavigationControllerにデータを渡すにはどうすればよいですか?

これは、子コントローラー(この場合はnewItemController)を作成するこのメソッドの方法であり、UINavigationController initWithRootViewControllerメソッドを介して初期化されるため、ここでカスタムのnewItemControllerinitメソッドを呼び出す機能はないようです。また、newItemControllerインスタンス自体にアクセスして、カスタムの「setMyData」タイプのメソッドを呼び出すこともできませんか?

NewItemController *newItemController = [NewItemController alloc];
newItemController.delegate = self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:newItemController];
[self.navigationController presentModalViewController:navController animated:YES];
4

2 に答える 2

4

質問のコードには、NewItemController に呼び出される init がありません。例えば:

NewItemController *newItemController = [[NewItemController alloc] init];

NewItemController を作成したら、独自の init を作成できます。

-(id)initWithStuff:(NSString *)example {
    self = [super init];
    if (self) {
        // do something with the example data
    }
    return self;
}

または NewItemController クラスにプロパティを追加できます

// header file
@property (nonatomic, copy) NSString *example;

// .m file
@synthesize example;

// when you create the object
NewItemController *item = [[NewItemController alloc] init];
item.example = @"example string data";
于 2011-03-27T06:14:48.027 に答える
1

重要なのは、データをナビゲーション コントローラーに渡すのではなく、ナビゲーション コントローラーのルート ビュー コントローラーに渡すことです。

于 2011-03-27T06:25:47.097 に答える