从其他viewController访问UIScrollView

时间:2013-01-14 14:58:12

标签: iphone ios uiscrollview

我有两个viewController:  AController(UIScrollView是子视图)和BController

    来自AController的
  • 我使用presentModalViewController到BController。从BController我使用dismissModalViewControllerAnimated返回AController。但是,我想从BController中为UIScrollView设置隐藏。

请帮帮我! 谢谢!

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是使用委托协议。 AController将成为BController的代表。在BController被解雇之前,它可以调用协议的方法来提醒AController和AController本身,同时隐藏scrollView。

或者,您可以覆盖AController实现文件中的-viewWillAppear,以测试'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:

答案 1 :(得分:0)

使用委托,如果你在AView viewWillAppear通知中没有使用这么多的expariance:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hideScrollView) name:@"hideScrollView" object:nil];

并在您的BView中使用:

[[NSNotificationCenter defaultCenter]
     postNotificationName:@"hideScrollView" object:nil];

结果我会在你隐藏你的scrollView时在AView中激活hideScrollView方法。