0

スタック上のビューから以下のこのコードを呼び出す前または後に、プログラムがポップするルート ビューにラベルのテキストを設定したいと思います。

[self.navigationController popViewControllerAnimated:YES];

View Controllerをスタックにプッシュするときは(以下のように)逆に実行できますが、スタックからポップするときの方法がわかりません

- (PushedViewController *) pushedViewController {
NSLog(@"Initialise view");
if (pushedViewController == nil) {
    pushedViewController = [[PushedViewController alloc] initWithNibName:@"PushedView" bundle:nil];
}
return pushedViewController;
}

#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[TableView deselectRowAtIndexPath:indexPath animated:YES];


Table* tableRow =[fetchedResultsController objectAtIndexPath:indexPath];

[self.navigationController pushViewController:self.pushedViewController animated:YES];
self.pushedViewController.code.text = tablerow.code;

}

ビューの新しいインスタンスを作成せずに、スタック上のビューの変数にアクセスして設定する方法を教えていただければ幸いです。

4

1 に答える 1

1

本当に必要なのは、デリゲートのようなコールバックを作成することです。あなたの子コントローラーが持つように

@protocol PushedViewControllerDelegate
@required

- (void)controller:(PushedViewController *)controller didUpdateSome:(id)data;

@end

とプロパティ

@property (nonatomic, assign) id<PushedViewControllerDelegate> delegate

これで、ルート コントローラーを子コントローラーに割り当てることができdelegate、必要な変更を通知することができます。

于 2012-08-12T09:20:14.527 に答える