2016-11-07 8 views
0

を表示され、私はself.backUpTitleは、現在の元のタイトルを持っているこのiOSのナビゲーションバーのタイトルは、ビューが

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

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

のように、ナビゲーションバーの[戻る]ボタンのタイトルを設定しようとしていたときにテキストに省略記号を作っているdinamically設定しましたViewController。

非常にうまくいきますが、「戻る」をクリックするたびにすぐに効果があります。ナビゲーションバーのタイトルには、最初の3文字に省略記号が続きます(例:「タイトル」は"Tit ...")、ビューが完全に表示された後、タイトル全体が問題なく表示されます。

This is what happens when view is appearing

This is what looks like when the view has already appeared

ことは、それが通常の場合には発生しませんので、私はそれがボタンのタイトルをバック設定についての私の解決策としなければならないと思います...です。

質問は:この効果を避ける方法はありますか?私はself.titleを間違った機能で呼びますか?

答えて

1

私は自分のマシン上でコードを実行してみたと私は同じ問題を示していないよ10.0

私はXcodeの8とiOSを使用しています。私はあなたがナビゲーションバーのタイトルのためのカスタムビューを使用している可能性があり、あなたのself.backUpTitleは、省略記号を引き起こすカスタムビューの内側にあると思っています。

ヒント:

  1. あなただけの省略記号なしでそのように、「ユーザーの作成」を表示したい場合は、あなたのナビゲーションバーのすべてのカスタムビューを削除し、まさに同様のViewControllerのタイトルを設定することをお勧めしますあなたのコードでやっている。

  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

関連する問題