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

shenyi0106 2015-02-11 10:44:24
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变量?
...全文
102 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hslinux 2015-02-11
可以直接用代码创建按钮
回复
首先你先看看控件和变量连接的是否正确,能通过代码加载view中的控件的,xib中将控件按顺序加载到一个栈中,你可以去哪里取,另外你也可以用代码创建button按钮,如果想xib中拖控件,你可以先拖控件,然后点击控件同时按住control键指向.h文件中,让系统直接生成变量。试试。
回复
ReyZhang 2015-02-11
引用 4 楼 shenyi0106 的回复:
谢谢各位的耐心回答,虽然我还是没搞清怎么回事,但是现在好了。 我没改动任何东西,就是清理了一下编译缓存,在xib上删除了一个控件,在编译,又清理了一下,在恢复原来的控件,编译,就好了。 感觉这个XCode没VS好用。再次谢谢各位的回答。
解决就好。也有一些其它情况也会因为缓存的问题而导致出现问题。
回复
shenyi0106 2015-02-11
谢谢各位的耐心回答,虽然我还是没搞清怎么回事,但是现在好了。 我没改动任何东西,就是清理了一下编译缓存,在xib上删除了一个控件,在编译,又清理了一下,在恢复原来的控件,编译,就好了。 感觉这个XCode没VS好用。再次谢谢各位的回答。
回复
ReyZhang 2015-02-11
如果插座变量与xib正确连接,应该是可以正常工作的。你说的问题感觉还是你在操作的过程中,没操作正确导致的。 在xib关联类中的插座变量时,需要注意的两个地方: 1. 与xib关联的类是否设置正确 2. 插座变量与xib的连接是否正确 如果都能正确设置,不会出现控件不能被创建的情况。 xib的方式会帮助xib上的元素完成创建及初始化,而使用代码的方式就需要用户自己来创建控件的实例
UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
////.....根据需要,设置button相应的属性和动作,如title, image,addtarget
[self.view addSubview:leftButton];  //////添另到视图树中。
回复
发动态
发帖子
iOS
创建于2008-03-10

2.8w+

社区成员

主要讨论与iOS相关的软件和技术
申请成为版主
社区公告
暂无公告