gpt4 book ai didi

iphone - Xcode 为所有 View 动态加载 GUI

转载 作者:行者123 更新时间:2023-12-03 17:24:13 25 4
gpt4 key购买 nike

我对 Xcode 和 Objective C 还算陌生。

我已成功动态加载我的 View 之一上的所有 GUI 对象..

现在我想在我的所有或大部分 View 上重复相同的动态加载内容..

我在主视图中有一个像这样的方法:

-(void)loadinfo:(id)sender{
//All dynamically loaded content etc..
}

我目前有主视图像这样调用此方法。

[self loadinfo];

所以现在我需要知道(无需将方法复制并粘贴到我的所有 View 中)如何从主视图调用该方法到其他 View 中?

我希望这一切都有道理。

编辑

我对 PHP 比较了解,所以如果我要在 php 中做同样的事情,我会创建一个名为functions.php 的文件,并将该文件包含到所有页面中。这是相同的概念吗?

最佳答案

这个概念与 PHP 中函数的方法不同。在 Objective C 中,人们使用的是对象。要在对象之间共享行为(您的 PHP 函数,在 Objective C 中称为方法),您需要将该行为放入类层次结构中的某个位置。

因此,对于您的具体情况,您将在一个通用类中实现 loadinfo 方法,该通用类是 NSView 的子类,例如 MyGenericView。然后,您的 view1view2 类都将从该通用类生成子类并继承 loadinfo 方法。

如果您想从基类中转移 loadinfo 的实现,您可以通过执行以下操作部分覆盖它(在 view1 或 view2 中):

- (void) loadview {
[super loadview]; // perform the default implementation
[self doSomethingDifferint]; // perform subclass specific stuff
}

...或:

- (void) loadview {
[self doSomethingDifferint]; // perform subclass specific stuff
[super loadview]; // perform the default implementation
}

...或通过执行以下操作完全覆盖:

- (void) loadview {
[self doSomethingCompletelyDifferent]; // perform subclass specific stuff
}

顺便说一句:在 Objective C 中命名类和方法时,最好遵循 CamelCase 标准,因此您的类将是 View1View2 以及方法将是 loadInfo

此外,您可能想要 read up on generic OO principles and Objective C它的具体方面,以充分利用该语言及其功能。

关于iphone - Xcode 为所有 View 动态加载 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533535/

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