gpt4 book ai didi

xcode - 从子 UIView 访问父 View

转载 作者:行者123 更新时间:2023-12-04 21:22:48 25 4
gpt4 key购买 nike

我有一个带有 xib 的 UIViewController,并使用 Interface Builder 添加了一个子 UIView。
在子 UIView 中,当我单击该 View 中的一个对象时,我希望能够更改整个窗口的标题。

现在我通常会做那个设置

self.title = @"hi";

在父 UIViewController 上。但是有什么方法可以从 child 内部访问父标题吗?

我试过了
self.superview.title = @"i";
self.parentViewController.title = @"hi";

但都不起作用。
非常感谢任何帮助

谢谢

最佳答案

self.superview.title = @"i";计算结果为 UIView 类型的对象, 和 UIView没有 title属性(property)。 UIViewController s 有一个 parentViewController属性(property)但UIView不要。

所以根本的问题是你没有正确地分离你的 Controller 和你的 View 类。您通常要做的是在 UIControl 的子类上创建您想要捕捉的 View 。 (像 UIButton 这样的东西已经是,但如果它是一个自定义的 UIView 子类,那么你可以把它改成一个 UIControl 子类,因为 UIControl 本身就是 UIView 的子类),然后在你的 Controller 中添加就像是:

- (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";
}

因此,您明确地不向 View 投资有关其在 View 层次结构中的位置或 View Controller 打算如何操作的任何知识。如果它收到用户交互,你只需告诉它给你一个呼喊。

关于xcode - 从子 UIView 访问父 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9151230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com