对于iOS和目标C,似乎有几十个线程用于此,但对于macOS和only的唯一线程是未回答的:Access an IBOutlet from another class in Swift
在NSTabView中,我在另一个选项卡(Tab3)中有一个NSPopUpButton (popup1)的IBOutlet。当我按“保存”键时,它会从所有选项卡收集信息,包括访问popup1的popup1属性。
我的方法:
let tab = Tab3()
tab.popup1!.indexOfSelectedItem访问插座的
执行中的错误:致命错误:在展开可选值时意外地发现为零,是的,表3的ViewController在执行此命令时已经加载了。
我认为这是因为ViewController的一个实例无法访问IBOutlets。因此,问题仍然存在,我如何访问IBOutlet的属性?
发布于 2021-05-27 18:42:00
如何从其他视图控制器访问IBOutlets :不要。
这违反了封装的原则。您应该将另一个视图控制器的视图视为私有视图。
我建议添加一个函数或计算属性"currentlySelectedItem“。在另一个视图控制器中,您可以查询这个问题。请注意,如果出口尚未加载或用户尚未选择项,则应返回一个可选选项。
(您的代码崩溃是因为这个位:let tab = Tab3()
创建Tab3视图控制器的新实例。它的视图还没有加载。
你也需要解决这个问题。(您需要找到一种方法来获得指向屏幕上的另一个视图控制器的指针,而不是创建一个新实例。)如何做到这一点取决于您如何管理应用程序中的视图控制器。
https://stackoverflow.com/questions/67728047
复制相似问题