【问题标题】:Set one class IBOutlet referencing outlet for another class textfiled?为另一个类文本字段设置一个类 IBOutlet 引用出口?
【发布时间】:2015-10-28 17:55:03
【问题描述】:

我正在尝试为另一个类文本字段设置一个类引用出口。 我的第一堂课有一个 IBOutlet 参考插座,如下所示:

@property (nonatomic,retain) IBOutlet UIView *presentInView;

我想将此presentInView 引用插座设置为另一个类文本字段。

根据拖放过程,我能够为另一个类textfield 提供此参考出口。见下图:

但是如何以编程方式实现呢?

【问题讨论】:

  • a) 为什么你不能在 Xcode 中这样做 b) 不要在第二个类中将其声明为 IBOutlet,你可以将其视为变量 (class2.presentInView = self.presentInView)跨度>
  • 如何将 presentInView 引用添加到我的文本字段
  • 我不确定我是否理解。您希望文本字段具有UIView 的变量吗?
  • 是的,这就是我想要的
  • 但是该类肯定代表当前正在呈现的视图控制器。在另一个视图控制器中引用文本字段有什么意义?这听起来像您没有正确使用 MVC 模式。

标签: ios objective-c


【解决方案1】:

首先,我完全同意上面的 trojanfoe cmets (+1) - 你永远不希望一个视图控制器的视图由另一个视图控制器管理。

但是,我见过一些情况,您希望根据另一个视图控制器中发生的某些情况在一个视图控制器的文本字段上设置文本。如果您属于该类别,那么您需要这样做:

  1. 在第一个视图的头文件中暴露一个NSString属性 控制器。您也可以公开 UITextField 属性,但是 除非有必要,否则尽量抽象 UI 组件暴露。
  2. 在第二个视图控制器中保留屏幕上显示的第一个视图控制器对象的引用。
  3. 将#1 中创建的属性设置在#2 中创建的对象上,一切就绪。

PS:你也可以使用委托模式,这在这里更有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    相关资源
    最近更新 更多