joe*_*ull 10 iphone model-view-controller stack view uiview
我需要在导航堆栈中弹出子视图后更新iPhone上的父视图.当子项弹出堆栈并且父项再次可见时,如何设置要通知的父视图或接收自动方法调用?
用户在用户完成后在父页面上显示的子页面上输入数据并弹出视图.
谢谢你的帮助!
小智 13
我刚刚解决了这个同样的问题 - 上面的答案几乎是正确的,他们只是忘了设置委托.
我有一个根视图控制器,它显示列表的大小,调用可能改变列表大小的子视图控制器,并且必须在返回时更新大小.
当我创建我的父视图(下面的SettingsView),并将其添加为UINavigationController的根视图时,我确保在显示视图之前设置UINavigationController的委托 - 这是关键部分:
SettingsView *sv = [[SettingsView alloc] initWithNibName:@"SettingsView" bundle:nil];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:sv];
[nc setDelegate:sv];
Run Code Online (Sandbox Code Playgroud)
在父视图中,实现UINavigationControllerDelegate协议:
@interface SettingsView : UIViewController <UINavigationControllerDelegate>
Run Code Online (Sandbox Code Playgroud)
并提供willShowViewController方法:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
// Your code to update the parent view
}
Run Code Online (Sandbox Code Playgroud)
在关闭子视图之后,以及在重新显示父视图之前调用此方法.
我也需要做这样的事情.在拥有我的UINavigationController的ViewController中,我必须实现willShowViewController,如下所示:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
}
Run Code Online (Sandbox Code Playgroud)
只要UINavigationController更改视图,就会调用该方法.如果我正确理解你的问题,我认为这应该做你想要的.
| 归档时间: |
|
| 查看次数: |
12867 次 |
| 最近记录: |