【问题标题】:Change title of navigation controller from second view controller?从第二个视图控制器更改导航控制器的标题?
【发布时间】:2015-08-02 23:31:18
【问题描述】:

我有一个嵌入了导航控制器的视图控制器。

通过这个视图控制器,我可以使用navigationItem.title = "title" 更改导航栏的标题。

此外,我还有另一个 tableview 控制器,我想也从这里更新导航控制器的 tile,这个 tableview 控制器充当第一个视图控制器的滑出菜单。

导航控制器和 tableview 控制器没有直接连接,但我使用一个名为 SWRevealViewController 的库来创建滑出菜单并将其与第一个视图控制器连接。

我试过这些代码:ViewController().navigationItem.title = "secondTitle"

我还尝试将更改标题的过程放在第一个控制器中的函数中,并创建一个类似 :ViewController().updateNavTitle() 的实例,还尝试创建一个 segues 但没有任何结果。

【问题讨论】:

  • UIViewController *vc = [navigationController.viewControllers objectAtIndex:index]; vc.title = @"title";
  • 其实代码在swift上,我对objective-c一点也不熟悉,你有swift的解决方案吗?
  • 在我的应用程序中,我可以使用 navigationitem.title 或 myviewcontroller.title 设置标题(我使用后者没有问题)。我的 appdelegate.h 文件中有我的视图控制器作为属性,我可以在我的应用程序中的任何位置访问它。我不确定你到底在问什么。我认为标题来自导航控制器显示的视图控制器。我只是设置了每个视图控制器的标题(self.title = @"title"),当它被推送时,标题会更新。

标签: ios swift uinavigationcontroller segue swrevealviewcontroller


【解决方案1】:

在您的第一个类中创建一个String 变量,并在您的滑出控制器中访问此属性并更新它。现在在您的第一个控制器的 viewWillAppear 方法中更新标题,如下所示。

override func viewWillAppear(animated: Bool) {

      super.viewWillAppear(animated)
      if self.updatedTitle != nil {
      self.navigationItem.title = self.updatedTitle//Create this String variable.
      }
}

【讨论】:

  • 你能告诉我updatedTitle是什么,这是一个字符串变量还是别的什么?此外,我已经有一个由 ViewControler 和 Slide Out 控制器更新的字符串变量,我将其替换为 updatedTitle。但在这两种情况下,我都有一个错误“ViewController”没有名为...的成员。
  • 这是第一个视图控制器中的字符串变量。
  • 比我有一个错误“ViewController”没有名为 updatedTitle 的成员,即使我正在创建它
  • 您是如何在第二堂课中访问 ViewController 的?
  • 我不知道你是什么意思,但访问 ViewController。但是 ViewController 和第二个类没有直接连接(它们之间没有 segue)。我有他们都可以访问的公共变量以及来自 AppDelegate 的一些函数。很抱歉打扰你,但我是新手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多