首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >访问模式视图控制器父级

访问模式视图控制器父级
EN

Stack Overflow用户
提问于 2011-07-18 23:16:02
回答 5查看 31.8K关注 0票数 29

我正在介绍一个模态的ViewController。如何访问父视图控制器?

我的架构是TabBarController=>VC1=>VC2=>VC3=>MVC1,我想从MVC1到达VC3。

在VC3中,我有这样的代码:

代码语言:javascript
复制
- (void) editAd{
    AskPasswordViewController *modalViewController = [[AskPasswordViewController alloc] initWithNibName:@"AskPasswordView" bundle:nil];

    NSLog(@"modalparent class=%@", [[modalViewController parentViewController] class]);

    [self presentModalViewController:modalViewController animated:YES];
    [modalViewController release];
}

我在MVC1中尝试了一下:

代码语言:javascript
复制
- (void) sendRequest {
    NSLog(@"classe : %@",[[self parentViewController] class] );
}

但它返回我的TabBarViewController..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-18 23:39:23

我做这类事情的方法是简单地创建一个委托。在AskPasswordViewController的标题中,放入

代码语言:javascript
复制
id delegate;

代码语言:javascript
复制
@property (nonatomic, assign) id delegate;

在实现文件中综合它。然后,在分配/初始化模态控制器之后,在呈现它之前,设置modalViewController.delegate = self;。然后,在模态控制器中,您可以调用self.delegate来从呈现它的视图控制器获取信息。我希望这能帮到你

票数 25
EN

Stack Overflow用户

发布于 2011-07-18 23:18:52

只需像这样调用parentViewController,您就可以再往前走:

self.parentViewController.parentViewController ...以此类推,直到你找到合适的那个。

票数 7
EN

Stack Overflow用户

发布于 2018-02-21 08:50:39

除了Vibhor Goyal -有时,self.presentingViewController注册为NavigationController。因此,请尝试:

代码语言:javascript
复制
if let vc = self.presentingViewController.childViewControllers.last as? YourViewController {
// do stuff here
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6735170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档