xcode – 从chid UIView访问父视图

xcode – 从chid UIView访问父视图,第1张

概述我有一个带有xib的UIViewController并使用Interface Builder我添加了一个子UIView. 在子UIView中,当我点击该视图中的一个对象时,我希望能够改变整个窗口的标题. 现在我通常会做那个设置 self.title = @"hi"; 在父UIViewController上.但有什么方法可以从孩子内部访问父母标题? 我试过了 self.superview.title 我有一个带有xib的UIVIEwController并使用Interface Builder我添加了一个子UIVIEw.
在子UIVIEw中,当我点击该视图中的一个对象时,我希望能够改变整个窗口的标题.

现在我通常会做那个设置

self.Title = @"hi";

在父UIVIEwController上.但有什么方法可以从孩子内部访问父母标题?

我试过了

self.supervIEw.Title = @"i";self.parentVIEwController.Title = @"hi";

但都没有工作.
任何帮助非常感谢

谢谢

解决方法 self.supervIEw.Title = @“i”;求值为UIVIEw类型的对象,UIVIEw没有Title属性. UIVIEwControllers有一个parentVIEwController属性,但UIVIEws没有.

因此,根本问题在于您没有正确地分离控制器和视图类.你通常做的是让你想要捕获UIControl的子类的视图(像UIbutton这样的东西,但是如果它是一个自定义的UIVIEw子类,那么你可以将它改成UIControl子类,因为UIControl本身是一个UIVIEw的子类),然后在你的控制器中添加如下内容:

- (voID)vIEwDIDLoad{    [super vIEwDIDLoad];    // we'll want to kNow if the vIEw we care about is tapped;    // we've probably set up an IBOutlet to it but any way of    // getting to it is fine    [interestingVIEw               addTarget:self               action:@selector(vIEwTapped:)               forControlEvents:UIControlEventtouchDown];     // UIbuttons use UIControlEventtouchUpInsIDe rather than     // touch down if wired up in the interface builder. Pick     // one based on the sort of interaction you want}// so Now this is exactly like an IBAction- (voID)vIEwTapped:(ID)sender{    self.Title = @"My new Title";}

因此,您明确不要将视图投入任何有关其在视图层次结构中的位置或视图控制器打算如何 *** 作的知识.如果它收到用户交互,你只是告诉它给你一个喊叫.

总结

以上是内存溢出为你收集整理的xcode – 从chid UIView访问父视图全部内容,希望文章能够帮你解决xcode – 从chid UIView访问父视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存