【问题标题】:UIButton losing text label when navController returns导航控制器返回时 UIButton 丢失文本标签
【发布时间】:2011-10-20 07:59:21
【问题描述】:

我有一个带有“名称”标签的自定义 UIButton。当用户点击此按钮时,它会加载另一个显示名称列表的视图,点击名称会弹出此视图,并使用所选名称更新 UIButton。

那部分有效。如果用户没有从视图中选择名称,而只是点击返回,则不起作用。视图被弹出,但现在 UIButton 文本“名称”被删除,按钮文本完全空白。 如何阻止文本标签被擦除?

如果点击一行 (didSelectARowAtIndexPath),我没有任何更新 UIButton 标签的代码except,所以我不明白在加载新标签时如何清除标签“名称”看法。请注意,我有三个具有类似功能的按钮,并且只有相应按钮的文本在点击时会被删除 - 其他两个不受影响。

【问题讨论】:

    标签: ios uibutton label


    【解决方案1】:

    你在调用 Button.titleLabel.text = @"Name";或非点属性版本。如果是这样,那是你的问题。您需要致电
    [按钮 setTitle:@"Name" forState:UIControlStateNormal];否则当按钮改变状态时标题将丢失。如果那不是您的问题,请发布一些代码。

    【讨论】:

      【解决方案2】:

      在您的didSelectARowAtIndexPath 方法中设置断点并查看它是从哪里调用的。您可以阅读 Apple 的 Debugging Applications 文档以了解有关使用 XCode 调试器的更多信息,或者您也可以直接使用 google for "xcode debugging tutorial"

      【讨论】:

      • 问题的用例是我没有在此表中选择任何内容,我只是点击“返回”,并且正在清除文本标签。点击项目会正确更新标签。
      • @beeudoublez:既然你说整个程序中唯一更新标签的地方就是那个函数,那么最好的猜测是即使你只是点击“返回”,这个函数也会被调用。如果您在该函数中设置了一个断点,并且当您点击“Back”时它会中断,您可以检查回溯并(希望)找出它是从哪里调用的。如果没有,您可以尝试找出代码中您不知道的标签正在更新的其他位置。
      • 我明白你在说什么 - 我在 didSelectRowAtIndexPath 上设置了一个断点:它不是仅由正在加载的视图触发的。我想知道它是否与 State 类型有关,无论是 Highlighted 还是 Selected 都以某种方式清除它....但是我没有任何修改标签的代码
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 2019-01-21
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      相关资源
      最近更新 更多