UIButton和IBOutlet变量关联的奇怪问题

iOS 码拜 10年前 (2015-05-03) 1108次浏览 0个评论

IOS中,UIButton变量关联xib中的Button控件是通过定义IBOutet,然偶在控件窗口中,通过拖动来关联的。
现在我遇到一个奇怪的现象:
我的xib中,有两个UIButton控件,我在代码中也定义了两个IBOutlet,通过上述的拖动方式关联控件和变量,现在一个起作用,一个不起作用。通过断点调试进去看,一个变量是有值的(起作用的那个),一个变量是nil(不起作用的那个)。

具体做法如下:
我定义了两个UIButton控件 分别叫做 button1和button2,
我在.h中又定义了两个IBOutlen变量,分别是:

IBOutlen UIButton *leftButton;
IBOutlen UIButton *rightButton;

我通过拖拽的方式,关联控件和变量,并且XCode也在leftButton和rightButton变量前面自动添加了一个小圆圈,表示关联成功了。

问问各位,哪位遇到过类似问题?怎么解决的?
或者谁能告诉我,能不能不通过拖拽,直接通过代码关联UIButton控件和IBOutlet变量?

UIButton和IBOutlet变量关联的奇怪问题
25分
首先你先看看控件和变量连接的是否正确,能通过代码加载view中的控件的,xib中将控件按顺序加载到一个栈中,你可以去哪里取,另外你也可以用代码创建button按钮,如果想xib中拖控件,你可以先拖控件,然后点击控件同时按住control键指向.h文件中,让系统直接生成变量。试试。
UIButton和IBOutlet变量关联的奇怪问题
25分

可以直接用代码创建按钮

UIButton和IBOutlet变量关联的奇怪问题
25分
如果插座变量与xib正确连接,应该是可以正常工作的。你说的问题感觉还是你在操作的过程中,没操作正确导致的。
在xib关联类中的插座变量时,需要注意的两个地方:
1. 与xib关联的类是否设置正确
2. 插座变量与xib的连接是否正确
如果都能正确设置,不会出现控件不能被创建的情况。

xib的方式会帮助xib上的元素完成创建及初始化,而使用代码的方式就需要用户自己来创建控件的实例

UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
////.....根据需要,设置button相应的属性和动作,如title, image,addtarget
[self.view addSubview:leftButton];  //////添另到视图树中。
UIButton和IBOutlet变量关联的奇怪问题
谢谢各位的耐心回答,虽然我还是没搞清怎么回事,但是现在好了。
我没改动任何东西,就是清理了一下编译缓存,在xib上删除了一个控件,在编译,又清理了一下,在恢复原来的控件,编译,就好了。

感觉这个XCode没VS好用。再次谢谢各位的回答。

UIButton和IBOutlet变量关联的奇怪问题
25分
引用 4 楼 shenyi0106 的回复:

谢谢各位的耐心回答,虽然我还是没搞清怎么回事,但是现在好了。
我没改动任何东西,就是清理了一下编译缓存,在xib上删除了一个控件,在编译,又清理了一下,在恢复原来的控件,编译,就好了。

感觉这个XCode没VS好用。再次谢谢各位的回答。

解决就好。也有一些其它情况也会因为缓存的问题而导致出现问题。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明UIButton和IBOutlet变量关联的奇怪问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!