我在iOS应用中注册时有一个视图控制器,用户可以选择跳过。但是,如果他们开始这一步骤,他们要么必须完成它,要么点击撤消,这样就不会保存部分信息。为了确保这一点,我隐藏了导航栏按钮,进入下一个屏幕。首先,我有文字说" SKIP"然后当你开始输入信息时,它就会消失,一旦你输入了足够的信息,标题就会改为" NEXT&# 34 ;.它也可以倒退。您可以为" NEXT"输入足够的信息。出现,然后点击撤消,按钮消失,继续按下撤消,按钮应该说" SKIP"试。
问题是,当按钮重新出现时,在更改为新标题之前,它仍然具有旧标题一瞬间。因此,它会说" SKIP",用户开始输入信息,它消失,用户输入所有信息,然后重新出现,说" SKIP"一瞬间,然后改为" NEXT"。
这是在更新信息时调用的函数,检查按钮应显示的内容:
-(void)checkValid
{
if( /*starting condition*/ )
{
[_nextButton setTitle:@"SKIP" forState:UIControlStateNormal];
[_nextButton setTitle:@"SKIP" forState:UIControlStateDisabled];
[_nextButton setTitle:@"SKIP" forState:UIControlStateSelected];
[_nextButton setTitle:@"SKIP" forState:UIControlStateHighlighted];
[_nextBarButtonItem setEnabled:YES];
[_nextButton setHidden:NO];
}
else if( /* complete condition */ )
{
[_nextButton setTitle:@"NEXT" forState:UIControlStateNormal];
[_nextButton setTitle:@"NEXT" forState:UIControlStateDisabled];
[_nextButton setTitle:@"NEXT" forState:UIControlStateSelected];
[_nextButton setTitle:@"NEXT" forState:UIControlStateHighlighted];
[_nextBarButtonItem setEnabled:YES];
[_nextButton setHidden:NO];
}
else /* in between condition */
{
[_nextButton setHidden:YES];
[_nextBarButtonItem setEnabled:NO];
}
}
_nextButton是我拖动到IB中导航栏的自定义UIButton。 _nextBarButtonItem是UIButton出现在视图层次结构中的UIBarButtonItem。我最初只设置了UIControlStateNormal的标题,但想到可能因为按钮出现它处于不同的状态,所以我尝试添加每个状态......
任何想法可能会出错?我没有在其他可能相互冲突的地方更改标题。
我感谢任何提示。
编辑 - 我尝试更改它,以便我只更改_nextButton的隐藏属性,因此_nextBarButtonItem的启用属性始终打开。这允许相同的功能(因为_nextButton是隐藏的,你不能按它),但它仍然只是瞬间显示不正确的文本。代码与我之前发布的完全相同,除了所有[_nextBarButtonItem setHidden:]调用都被注释掉了。
答案 0 :(得分:1)
好的,在我们尝试任何过于激烈的事情之前,这里有一些非编码解决方案(我确定你已经尝试过这些,但是再给这些拍摄其中之一永远不会太晚。:D)
对不起基本的解决方案。对我个人而言,如果没有实际的文件,很难解决问题。对不起!的