Iphone 如何禁用uibarbuttonim?
我有一个不想残疾的维吾尔人。简短版本:当我打电话时Iphone 如何禁用uibarbuttonim?,iphone,ios,Iphone,Ios,我有一个不想残疾的维吾尔人。简短版本:当我打电话时 [myBarButtonItem setEnabled:NO]; 什么也没发生 myBarButtonItem是myVIewController中的IBOutletmyViewController已作为对象添加到Interface Builder中的MainWindow。myBarButtonItem出口已连接到BarButtonItem,并设置了相应的@syntesize和属性行 @property (nonatomic, retain)
[myBarButtonItem setEnabled:NO];
什么也没发生
myBarButtonItem
是myVIewController
中的IBOutletmyViewController
已作为对象添加到Interface Builder中的MainWindow
。myBarButtonItem
出口已连接到BarButtonItem,并设置了相应的@syntesize
和属性
行
@property (nonatomic, retain) IBOutlet UIBarButtonItem *myBarButtonItem;
在myViewController.m中
@synthesize myBarButtonItem;
有人知道为什么上面的setEnabled
方法没有影响吗?谢谢
更新:修正了!不知道为什么,但很明显,没有设置插座。我将我的应用程序委托用作UIBarButtonim的父对象,所有这些都已解决。如果您的工具栏有一个IBOutlet(并且您已检查以确保它不是零),请尝试:
您可以从UIViewController内部禁用左导航按钮,如下所示,而无需使用任何IBOutlet:
self.navigationItem.leftBarButtonItem.enabled = NO;
要禁用右导航按钮,请执行以下操作:
self.navigationItem.rightBarButtonItem.enabled = NO;
Swift3
self.navigationItem.rightBarButtonItem?.isEnabled = false
在我的例子(Swift)中,我添加了2个Barbuttonims作为一个数组-因此为了禁用它们,这就成功了
navigationItem.rightBarButtonItems?.first?.enabled = false
navigationItem.rightBarButtonItems?.last?.enabled = false
我用了一个不同的解决方案(Swift 4.2)来解决我的右巴布托 我有3个按钮,所以使用了for循环,然后扩展了UINavigationItem,这样我就可以在整个应用程序中使用它
extension UINavigationItem {
func setRightBarButtonItems(isEnabled:Bool){
for button in self.rightBarButtonItems ?? [UIBarButtonItem()] {
button.isEnabled = isEnabled
}
}
然后我可以从我的TableViewController调用它
navigationItem.setRightBarButtonItems(isEnabled: false)
您是否确实在调试器中验证了
myBarButtonItem
不是nil
?您如何在@interface中声明backing字段?为什么要使用@synthesis myBarButtonItem;在头文件“myViewController.h”中。这不应该在您的实现中吗?我想一旦你搬家,它就会把它修好。我是iOS开发新手,但每当我在头文件中有一个属性时,相应的合成器就会出现在我的.m(实现)文件.Oops中,这是一个输入错误。它在执行中。
navigationItem.setRightBarButtonItems(isEnabled: false)