在从堆栈视图调用此代码之前或之后,我想在根视图上设置标签的文本,程序将弹出。
[self.navigationController popViewControllerAnimated:YES];
当将视图控制器推入堆栈时,我可以反过来(如下所示),但是当我从堆栈中弹出时我不知道怎么做
- (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;
}
如果有人能告诉我如何访问和设置堆栈视图的变量而不创建视图的新实例,将不胜感激。
答案 0 :(得分:1)
你真正想要的是做一个类似委托的回调。这样你的孩子控制器就会
@protocol PushedViewControllerDelegate
@required
- (void)controller:(PushedViewController *)controller didUpdateSome:(id)data;
@end
和属性
@property (nonatomic, assign) id<PushedViewControllerDelegate> delegate
现在,您可以将根控制器分配给子控制器的delegate
,它可以通知您任何所需的更改。