首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他视图控制器(macOS)访问macOS

从其他视图控制器(macOS)访问macOS
EN

Stack Overflow用户
提问于 2021-05-27 18:34:35
回答 1查看 67关注 0票数 0

对于iOS和目标C,似乎有几十个线程用于此,但对于macOS和only的唯一线程是未回答的:Access an IBOutlet from another class in Swift

在NSTabView中,我在另一个选项卡(Tab3)中有一个NSPopUpButton (popup1)的IBOutlet。当我按“保存”键时,它会从所有选项卡收集信息,包括访问popup1的popup1属性。

我的方法:

let tab = Tab3()

  1. 创建Tab3的实例,例如

tab.popup1!.indexOfSelectedItem访问插座的

执行中的错误:致命错误:在展开可选值时意外地发现为零,是的,表3的ViewController在执行此命令时已经加载了。

我认为这是因为ViewController的一个实例无法访问IBOutlets。因此,问题仍然存在,我如何访问IBOutlet的属性?

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 18:42:00

如何从其他视图控制器访问IBOutlets :不要。

这违反了封装的原则。您应该将另一个视图控制器的视图视为私有视图。

我建议添加一个函数或计算属性"currentlySelectedItem“。在另一个视图控制器中,您可以查询这个问题。请注意,如果出口尚未加载或用户尚未选择项,则应返回一个可选选项。

(您的代码崩溃是因为这个位:let tab = Tab3()

创建Tab3视图控制器的新实例。它的视图还没有加载。

你也需要解决这个问题。(您需要找到一种方法来获得指向屏幕上的另一个视图控制器的指针,而不是创建一个新实例。)如何做到这一点取决于您如何管理应用程序中的视图控制器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67728047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档