2017-04-24 39 views
0

我有一个小问题。从其他地方更改navigationControllers标题

纯粹出于故障排除的目的,我想applicationDidBecomeActive()重命名当前视图navigationcontroller。

里面有导航栏是wrapperviewController(),使内,我可以使用self.navigationItem.title = "Test"类,但我试图做

wrapperviewController().navigationItem.title = "Maybe?"没有。

我也试过wrapperviewController().navigationController.navigationItem.title = "Maybe?"

任何帮助将不胜感激,谢谢!

回答

1

导航标题自动从UINavigationController的顶级视图控制器设置,所以你可以这样做:

func applicationDidBecomeActive(_ application: UIApplication) { 

    (window?.rootViewController as? UINavigationController)?.topViewController?.title = "My Debug Title" 
} 

这是假设根是一个UINavigationController。如果你有其他的包装,你可以插入适当的展开。

+0

谢谢,这工作,但是,我的问题更多的是一个例子,我希望答案会帮助我的其余问题。我可能会再次发布完整的问题,直到那时我会将你的标记标记为正确的答案 – Will

0

如果从AppDelegate中改变导航栏标题名称,在applicationDidBecomeActive()方法,试试下面的代码: -

self.window?.rootViewController?.navigationItem.title = "Title Name" 

如果您有多个视图控制器比你可以检查那边视图控制器&分配一个标题。