我正在介绍一个模态的ViewController。如何访问父视图控制器?
我的架构是TabBarController=>VC1=>VC2=>VC3=>MVC1,我想从MVC1到达VC3。
在VC3中,我有这样的代码:
- (void) editAd{
AskPasswordViewController *modalViewController = [[AskPasswordViewController alloc] initWithNibName:@"AskPasswordView" bundle:nil];
NSLog(@"modalparent class=%@", [[modalViewController parentViewController] class]);
[self presentModalViewController:modalViewController animated:YES];
[modalViewController release];
}
我在MVC1中尝试了一下:
- (void) sendRequest {
NSLog(@"classe : %@",[[self parentViewController] class] );
}
但它返回我的TabBarViewController..。
发布于 2011-07-18 23:39:23
我做这类事情的方法是简单地创建一个委托。在AskPasswordViewController
的标题中,放入
id delegate;
和
@property (nonatomic, assign) id delegate;
在实现文件中综合它。然后,在分配/初始化模态控制器之后,在呈现它之前,设置modalViewController.delegate = self;
。然后,在模态控制器中,您可以调用self.delegate
来从呈现它的视图控制器获取信息。我希望这能帮到你
发布于 2011-07-18 23:18:52
只需像这样调用parentViewController,您就可以再往前走:
self.parentViewController.parentViewController
...以此类推,直到你找到合适的那个。
发布于 2018-02-21 08:50:39
除了Vibhor Goyal -有时,self.presentingViewController注册为NavigationController。因此,请尝试:
if let vc = self.presentingViewController.childViewControllers.last as? YourViewController {
// do stuff here
}
https://stackoverflow.com/questions/6735170
复制相似问题