【问题标题】:Label text not changing after view controller is pushed推送视图控制器后标签文本未更改
【发布时间】:2013-06-22 23:25:57
【问题描述】:

我有一个标签栏应用程序。我在应用程序运行时推送的主视图控制器有一个标签,其中包含描述时间的文本。当我的主视图控制器中的一个按钮被按下时,另一个标签栏视图控制器被按下,底部有一个标签栏。当在我的标签栏视图控制器中按下另一个按钮时,我希望我的主视图控制器中的标签更改文本,除了重新推送主视图控制器以便我可以看到带有更改文本的标签。但是,按下标签栏控制器中的按钮并按下主视图控制器后,标签的文本不会改变。在推送标签栏视图控制器之前,我可以在主视图控制器中更改标签的文本。但是,在推送标签栏控制器然后重新推送主视图控制器后,我无法更改主视图控制器标签中的任何内容。当主视图控制器被重新推送时,就好像我的代码冻结了一样。

【问题讨论】:

  • 无法推送已经存在于导航堆栈中的视图控制器。您应该将标签栏视图弹出到主视图。并在 viewwillappear 中设置你的标签文本

标签: ios objective-c view uiviewcontroller uilabel


【解决方案1】:

先生。萨尔曼是对的。您必须在 viewWillAppear 中添加代码才能更改标签中的文本。

【讨论】:

    【解决方案2】:

    你应该这样尝试 1)你在第一个标签栏视图中创建一个主类的对象并分配属性,当你按下第一个标签栏视图(按下按钮时)你这样写

    firsttabbarObj.mainViewController=self;
    

    在主视图控制器中,您创建一个方法,该方法采用字符串并分配给标签,然后在弹出时在第一个标签栏中查看您编写此代码

    [self.mainViewController setText:string];
    [appDelegate.navigationController popViewControllerAnimated:YES];
    

    然后标签值被改变,你会看到你想要的结果:-)

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多