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
Ios 设置UIButton Enabled(已启用)和为每个状态设置映像不起作用_Ios_Objective C_Uibutton - Fatal编程技术网

Ios 设置UIButton Enabled(已启用)和为每个状态设置映像不起作用

Ios 设置UIButton Enabled(已启用)和为每个状态设置映像不起作用,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我有一个包含按钮的viewController。我在另一个viewController上显示此视图控制器不是模态的,而是通过 [self.storyboard instantiateViewControllerWithIdentifier:@"MyButtonView"] 因此,结果是一个viewController漂浮在另一个viewController上,其中顶部的viewController只占据大约一半的屏幕 底部视图控制器在某些时候会通知顶部视图控制器禁用和启用其按钮。当这个调用发生

我有一个包含按钮的viewController。我在另一个viewController上显示此视图控制器不是模态的,而是通过

[self.storyboard instantiateViewControllerWithIdentifier:@"MyButtonView"]
因此,结果是一个viewController漂浮在另一个viewController上,其中顶部的viewController只占据大约一半的屏幕

底部视图控制器在某些时候会通知顶部视图控制器禁用和启用其按钮。当这个调用发生时(是的,它正在发生,因为我正在调试它)。未启用或禁用该按钮

===这是在我的viewdidload方法中=====

[self.myCirlceButton setImage:[UIImage imageNamed:@"Checkmark_v1_normal.png"] forState:UIControlStateNormal];
[self.myCirlceButton setImage:[UIImage imageNamed:@"Checkmark_v1_selected.png"] forState:UIControlStateHighlighted];
[self.myCirlceButton setImage:[UIImage imageNamed:@"Checkmark_v1_disabled.png"] forState:UIControlStateDisabled];
==这些是由底部viewController调用的top viewController上的委托方法===

-(void)enableConfirmArrow
{
   [self.myCirlceButton setEnabled:YES];
}

-(void)disableConfirmArrow
{
   [self.myCirlceButton setEnabled:NO];
}
当我在启用和禁用方法上断开点时,self.myCircleButton不是nil

我不知道为什么UI没有更新?我能想到的唯一一件事就是上面的启用和禁用方法有时会在3秒内来回调用10次

///更新///

作为一个测试,我改变了以下内容,它确实删除了它。更多的证据表明正在调用disable

-(void)disableConfirmArrow
{
   [self.myCirlceButton setEnabled:NO];
   [self.locationCirlceButton removeFromSuperview];
}

在启用或禁用按钮后,代码是否会在某个点停止?我这样问是因为直到所有代码停止运行,绘图才会发生,所以在此之前您不会看到任何更改。如果您的代码运行3秒钟(??),并来回更改启用状态,您将不会看到在此期间发生任何事情。下面是另一个想法。Checkmark_v1_disabled.png真的存在吗?因为如果没有,则该图像为nil,并且将按钮的禁用图像设置为nil意味着“在禁用时使用正常图像”。是的,它最终在最后一次调用以启用按钮后停止。是,禁用按钮存在。所有复选标记按钮都存在。我将禁用的图像设置为另一个随机图像,随机图像显示为旧的禁用复选标记图像。但问题是当我启用按钮时,启用的按钮不会显示。如果我将按钮设置为enabled(已启用)后单击该按钮,则会使其处于启用状态。