访问当前视图的父视图 - iOS

时间:2011-01-27 05:56:39

标签: ios objective-c uiview superview

当我想访问当前UIView的父UIView时,我在当前UIView中声明了父UIView的对象,并通过指定父UIView来访问它对象到当前视图的对象属性。

有没有办法摆脱这种情况并直接调用父视图的方法或属性?

我也试过(parentView *) self.view.superview但没有帮助。

在为此对象调用函数时出错

[UIVIew unrecognized selector......

3 个答案:

答案 0 :(得分:76)

如果您是直接通过UIView(而不是UIViewController)来调用,则应该是self.superview而不是self.view.superview

答案 1 :(得分:0)

@ Naveed:这是您可以用于任何视图的常用代码,无论是父视图还是子视图,只需更改您想要按的按钮名称以及您想要去的视图名称。例如,在后退按钮按下你想要进入库视图然后写下这段代码 -

-(IBAction)backButtonPressed:(id) sender
 {
        llibraryView *libraryview=[[libraryView alloc] initWithNibName:nil bundle:nil];
    libraryview.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:libraryview animated:YES]; 
    [libraryview release];
 }

让我知道你的问题是否得到解决。

答案 2 :(得分:0)

我能想到的是你想从视图中调用viewcontroller的方法,你将它添加到viewcontroller的视图中。

现在你有两个选项,你可以将视图控制器设置为视图的委托,然后通过[delegate performSelector:]方法调用viewcontroller的方法。

另一种方法是访问视图的超级视图,然后获取它的控制器。你不能直接这样做,因为你可以这样做会破坏MVC的整个目的。

但是,仍然有一条出路,你走了: -

Get to UIViewController from UIView?

希望,这对你有帮助。