50

当我想访问UIViewcurrent的父对象时,我在 current 中UIView声明 parent 的对象并通过将父对象分配给当前视图的 object 属性来访问它。UIViewUIViewUIView

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

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

调用此对象的函数时出错

[UIVIew unrecognized selector......
4

3 回答 3

91

如果您直接从 a UIView(而不是 a UIViewController)调用它,它应该是self.superview而不是self.view.superview.

于 2011-01-27T05:59:44.213 回答
0

@ Naveed:这是您可以用于任何视图的通用代码,无论是父视图还是子视图,只需更改您想要按下的按钮名称和您想要去的视图名称。例如在后退按钮上按下你想去图书馆视图然后写这个代码 -

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

让我知道您的问题是否已解决。

于 2011-02-23T12:12:52.303 回答
0

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

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

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

但是,仍然有出路,给你:-

从 UIView 到 UIViewController?

希望,这对你有帮助。

于 2013-06-27T10:10:44.767 回答