Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 什么';我在锡伯银行怎么了?_Objective C_Ios_Cocoa Touch - Fatal编程技术网

Objective c 什么';我在锡伯银行怎么了?

Objective c 什么';我在锡伯银行怎么了?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我有一组UIButton(在xib中定义),它们的标签需要定期更新。在这些按钮的superview的视图控制器的ViewDidLoad方法中,我有一个更新方法,该方法对每个按钮执行以下操作: button.titleLabel.text = @"Relevant Text"; [button setNeedsDisplay]; 当您点击一个按钮时,另一个方法会运行,弹出一个UIAlertView,它反过来调用视图控制器上的一个方法,该方法的作用与初始文本设置方法大致相同: button.tit

我有一组UIButton(在xib中定义),它们的标签需要定期更新。在这些按钮的superview的视图控制器的ViewDidLoad方法中,我有一个更新方法,该方法对每个按钮执行以下操作:

button.titleLabel.text = @"Relevant Text";
[button setNeedsDisplay];
当您点击一个按钮时,另一个方法会运行,弹出一个UIAlertView,它反过来调用视图控制器上的一个方法,该方法的作用与初始文本设置方法大致相同:

button.titleLabel.text = @"New Text";
[button setNeedsDisplay];
然而,这段代码根本不起作用,按钮标签的文本在两种方法中都不会得到更新,它仍然是一个空白的白色按钮。在xib中,我没有在按钮上定义任何文本-没有意义,除非在运行时设置按钮文本,否则按钮文本没有意义。无论如何,在百灵鸟上,我决定将其中一个按钮的文本设置为“test”

现在,当我点击那个特定的按钮时,它会弹出UIAlertView,但在后台会将按钮的文本更改为“test”。这一次,UIAlertView回调实现了我所期望的功能,并仅为该按钮设置文本。当我再次点击它时,文本返回到“test”,直到我关闭UIAlertView,它将再次运行回调方法并将按钮文本设置为该方法应该设置的任何值

我不知道这里发生了什么,也不知道为什么最初在xib中设置文本与我以后是否可以编程设置文本有任何关系。显然这不是我想要的行为,我想知道如何确定设置按钮上的文本


编辑:SVD关于setTitle:ForState的建议:解决了我的问题,谢谢。我仍然很好奇为什么.xib中设置的标题标签会出现,但只有当我弹出UIAlertView时才会出现。

您可能需要使用[setTitle:forState:]为正常和高亮显示(或选中)状态设置按钮标题


(如jtbandes所指出的,一定要确保按钮连接到插座上)。

您的按钮是否有实际连接的插座?你确定它不是零吗?我遇到了完全相同的问题,并且使用[setTitle:forState]方法将事情设置正确。