• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在导航栏上更改 UIButton 的标题,一瞬间出现错误的标题 iOS

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:14:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在注册期间,我的 iOS 应用程序中有一个 View Controller ,用户可以选择跳过。但是,如果他们开始该步骤,他们要么必须完成它,要么点击撤消,这样部分信息就不会被保存。为了确保这一点,我隐藏了转到下一个屏幕的导航栏按钮。起初,我的文字是“SKIP”,然后当你开始输入信息时,它就会消失,一旦你输入了足够的信息,标题应该会变成“NEXT”。它也可以向后工作。你可以输入足够的信息让“NEXT”出现,然后点击撤消,按钮消失,继续点击撤消,按钮应该再次显示“跳过”。

问题是,当按钮重新出现时,它仍然具有旧标题,然后再更改为新标题。所以它会说“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 在 View 层次结构中出现的 UIBarButtonItem。我最初只是设置了 UIControlStateNormal 的标题,但我想可能当按钮出现时它处于不同的状态,所以我尝试添加每个状态...

有什么想法可能会出错吗?我不会在其他可能有冲突的地方更改标题。

感谢任何提示。

edit - 我已经尝试更改它,以便只更改 _nextButton 的 hidden 属性,因此 _nextBarButtonItem 的 enabled 属性始终处于打开状态。这允许相同的功能(因为 _nextButton 是隐藏的,所以您不能按下它),但它仍然只显示不正确的文本一瞬间。代码与我之前发布的完全相同,只是所有 [_nextBarButtonItem setHidden:] 调用都被注释掉了。



Best Answer-推荐答案


好的,在我们尝试任何过于激烈的事情之前,这里有一些非编码解决方案(我相信您已经尝试过这些,但再尝试其中一个永远不会太晚。)

  • 尝试使用“产品”>“清理”“清理”您的缓存/目标。
  • 您是在 sim 上还是在有形的 iOS 设备上进行测试?如果您在模拟器上,请运行项目,选择“iOS 模拟器”(从屏幕顶部)>“重置内容和设置”。
  • 如果这些不起作用,您可以将项目放在 GitHub 上,我会下载/查看它。你永远不知道,可能是那些奇怪的 Xcode 怪癖之一! ;)

对不起,基本解决方案。就我个人而言,没有手头的实际文件很难解决问题。对不起!

关于ios - 在导航栏上更改 UIButton 的标题,一瞬间出现错误的标题 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450096/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap