当我想访问当前UIView
的父UIView
时,我在当前UIView
中声明了父UIView
的对象,并通过指定父UIView
来访问它对象到当前视图的对象属性。
有没有办法摆脱这种情况并直接调用父视图的方法或属性?
我也试过(parentView *) self.view.superview
但没有帮助。
在为此对象调用函数时出错
[UIVIew unrecognized selector......
答案 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?
希望,这对你有帮助。