2016-11-07 17 views
0

我想设置后退按钮标题导航栏,这样的iOS导航栏标题dinamically设置正在文本中的省略号时,视图显示

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    self.title = self.backUpTitle 
} 

override func viewWillDisappear(animated: Bool) { 
    super.viewWillDisappear(animated) 
    self.title = "Back" 
} 

self.backUpTitle具有原始标题当前视图控制器。

它工作得很好,但每次点击“返回”时我都会有一个很快的效果:导航栏的标题出现前三个字母后跟省略号(例如:“标题”将显示为“Tit ...”),并且在视图完全显示之后,它显示整个标题没有任何问题。

This is what happens when view is appearing

This is what looks like when the view has already appeared

的事情是...它没有在正常的情况下发生的,所以我想这与我有关设置后退按钮标题解决的事情。

问题是:有没有办法避免这种影响?我打电话self.title的功能错误吗?

回答

1

我使用的Xcode 8和iOS 10.0

我已经尽我自己的机器上运行的代码,我没有表现出同样的问题;我在想你可能会使用自定义视图来显示导航栏的标题,而你的self.backUpTitle位于导致省略号的自定义视图中。

几点建议:

  1. 如果你只是想显示没有省略号“创建用户”这样,你可能想要删除所有自定义视图为您导航栏,只是设置视图控制器的标题像什么你正在做你的代码。

  2. 使用“self.title”将改变你的ViewController的标题,确保你的ViewController嵌入到UIViewController中。但是,如果您创建的导航栏,设置标题应该是:

    navigationBar.topItem.title = “Create User”

  3. 只是重申一下,这是我的代码看起来像(这看起来像你的)嵌入在一个一个的ViewController下UINavigationController的:

    var backUpTitle: String! 
    
    override func viewDidLoad() { 
        backUpTitle = "Create User" 
    } 
    override func viewWillAppear(_ animated: Bool) { 
        super.viewWillAppear(animated) 
        self.title = self.backUpTitle 
    } 
    
    override func viewWillDisappear(_ animated: Bool) { 
        super.viewWillDisappear(animated) 
        self.title = "Back" 
    } 
    
+0

你是什么意思有关使用自定义视图的标题?我实际上使用本机UINavigationController,并没有触及导航栏,只是改变了ViewController的标题。我尝试了所有的建议,但没有运气! :( – cesrafa

相关问题