模式视图控制器后释放的 IBOutlets

Posted

技术标签:

【中文标题】模式视图控制器后释放的 IBOutlets【英文标题】:IBOutlets deallocated after modal view controller 【发布时间】:2013-05-13 20:46:25 【问题描述】:

我的 ViewController 类中有几个 IBOutlets,声明如下:

@property (nonatomic, retain) IBOutlet UILabel* labelHostStatus;
@property (nonatomic, retain) IBOutlet UIButton* connectButton;
@property (nonatomic, retain) IBOutlet UITextField* fieldAddress;
@property (nonatomic, retain) IBOutlet UITextField* fieldPort;

(当然还有@synthesize'd)

一切都很好,我可以在代码中访问 IBOutlets,并获取/设置文本和内容。

在某个时候,我决定展示一个模态视图控制器,这没问题。但是,在关闭模态视图控制器并返回主控制器后,我似乎无法再访问上述插座。尝试这样做时出现异常和崩溃:

2013-05-13 22:39:47.359 [7267:c07] -[__NSCFString text]: unrecognized selector sent to instance 0x885aa30

怎么了? :(

【问题讨论】:

您能分享更多详细信息吗?隔离问题是相当困难的...... 为什么要强烈保留您的 IBOutlet 属性?那些应该被弱保留 【参考方案1】:

天哪,没关系。只是想我已经在模式视图控制器类中释放了父视图,因为它被解除了。哦!

【讨论】:

以上是关于模式视图控制器后释放的 IBOutlets的主要内容,如果未能解决你的问题,请参考以下文章

使用 IBOutlets 将视图控制器初始化为自定义视图

我的游戏视图控制器 UIButton 有 IBOutlets,需要更好地组织

IBOutlets 和 IBActions 未显示在 main.storyboard 的视图控制器中

在 UITabView 中切换选项卡时,视图控制器与 IBOutlets 中的约束失去连接

ViewController 的子视图的 IBOutlets 在 Storyboard 的 viewDidLoad 中为零

我无法在 ViewController.swift 中链接 IBOutlets