我有两个viewController:AController(UIScrollView 是子视图)和BController
- 从 AController 我使用 presentModalViewController 到 BController 。从BController 我使用dismissModalViewControllerAnimated 回到AController。但是,我想从 BController 为 UIScrollView 设置隐藏。
请帮我 !谢谢!
我有两个viewController:AController(UIScrollView 是子视图)和BController
请帮我 !谢谢!
我认为最干净的方法是使用委托协议。AController 将成为 BController 的代表。并且在 BController 被解除之前,它可以调用协议的一个方法来提醒 AController,并在隐藏 scrollView 的同时提醒 AController 本身。
或者,您可以-viewWillAppear
在 AController 实现文件中覆盖,以测试“self.presentedController”是否是 BController 的子类。如果是,您可以隐藏scrollView。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([self.presentedViewController isKindOfClass:[BController class]]) {
//hide the scroll view
}
}
另外,我建议您不要使用-dismissModalViewControllerAnimated:
,除非您想支持 iOS 4 及更早版本:此方法已在 iOS 6 中弃用,您最好- dismissViewControllerAnimated:completion:
立即使用。
使用委托,如果您在 AView viewWillAppear 通知中没有太多的经验使用:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideScrollView) name:@"hideScrollView" object:nil];
并在您的 BView 中使用:
[[NSNotificationCenter defaultCenter]
postNotificationName:@"hideScrollView" object:nil];
结果,当您可以隐藏滚动视图时,我将在 AView 中触发 hideScrollView 方法。