在 Objective-C Xcode 5 中以编程方式创建视图

Posted

技术标签:

【中文标题】在 Objective-C Xcode 5 中以编程方式创建视图【英文标题】:Create View Programmatically in Objective-C Xcode 5 【发布时间】:2014-07-01 23:00:40 【问题描述】:

我应该如何以编程方式为情节提要创建视图?我想从创建的第一个 ViewController 对象访问标签(自动调用 VC 的 IBAction 方法)。我知道 VC 的第一个对象是链接到情节提要中的视图的对象(?),除了 VC,我需要更改另一个文件的标签。我很确定这样做的唯一方法是访问链接到视图的 VC 对象,或者创建一个而不使用创建的默认对象。如果没有,我将如何从另一个文件访问视图的标签?

【问题讨论】:

很难理解您想要做什么,也许可以尝试更详细地解释一下,并提供您的应用所包含的代码或文件示例? 您还提到了以编程方式制作视图,但您提到了故事板 + ibaction。如果您使用 Storyboard/NIB,通常不会以编程方式创建视图。 我想以编程方式创建一个视图,这样我就可以从另一个文件中更改标签,除了 VC。 @马克吉布森。我认为,该程序创建了一个链接到视图的 VC 对象,我想自己制作这个对象,这样我就可以更改链接到视图的标签。制作VC的另一个对象并不能改变视图中的标签,因为我创建的对象没有链接到视图。 从另一个类更改标签的内容与视图是在 IB 中还是在代码中创建无关。您真的不应该这样做——如果您想更改文本,请将新字符串传递给具有标签的控制器,然后让该控制器更新自己的 UI。 【参考方案1】:

您不会以编程方式创建情节提要对象。故事板基本上是 Xcode 用来调用不同视图控制器的 XML 文件。使用 storyboards 而不是 NIBs 的最大优势是您可以布局转换或 segues,而 NIBs 或 storyboards 相对于通过代码启动视图控制器的优势显然是可视化界面。所以你的问题真的没有意义。 如果您想从情节提要中引用特定视图控制器的标签,您需要首先创建指向该视图控制器的指针,但是以编程方式更改它没有意义,因为这就是情节提要的用途。 也就是说,您可能只需要在情节提要的视图控制器的 Identity Inspector 中查找您的类名,然后通过 IBOutlet 属性以编程方式编辑您的标签。

【讨论】:

以上是关于在 Objective-C Xcode 5 中以编程方式创建视图的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 5 中以编程方式修改 UINavigationcontroller

如何在 xcode 5 iOS 7 中以编程方式编辑 plist?

Objective-C XCode 4.5.2 UITableViewController 崩溃 [重复]

将 Objective-C++ 文件添加到 C++ Xcode 5 项目

Localizable.strings 文件在 Copy Bundle Resources Xcode 5.1 中以红色显示

如何在 Swift 5 中以编程方式在特定屏幕(即主显示器而不是外部显示器)上显示窗口? [苹果系统; Xcode 15]