我已成功鏈接鏈接代理方法,從CollectionViewController
→MenuTableViewController
→ListViewController
。在ListViewController
分機中,我撥打changeTitleView()
,但它不起作用。但是數據已成功通過,因爲print(title)
可以正確打印傳遞的信息。 changeTitle()
正確執行如果來自內ListViewController
正在調用方法但未正確執行
class ListViewController {
var navigationTitle: String?
@objc func changeTitle(title: String) {
let titleLabel = UILabel()
let attributes: NSDictionary = [
NSAttributedStringKey.font:UIFont(name: "HelveticaNeue", size: 20)!,
NSAttributedStringKey.foregroundColor: UIColor(red: 0.1137, green: 0.1137, blue: 0.149, alpha: 0.8) /* #1d1d26 */,
NSAttributedStringKey.kern:CGFloat(2.0)
]
let attributedTitle = NSAttributedString(string:
title.uppercased(), attributes: attributes as? [NSAttributedStringKey : AnyObject])
titleLabel.attributedText = attributedTitle
titleLabel.sizeToFit()
self.navigationItem.titleView = titleLabel
}
}
extension ListViewController: HandleTitleView {
@objc func changeTitleView(title: String) {
print(title)
self.navigationTitle = title
changeTitle(title: navigationTitle!)
}
附加信息稱爲:
1)我傳遞信息,通過SWRevealController所以不是所有的數據是相同的導航堆棧內。 ListViewController
是對MenuTableViewController
和CollectionViewController
頂部從MenuTableViewController
實例化,然後解僱
2)我在ListViewController
調用changeTitle()
創建了一個按鈕,它成功地改變了navigationItem.titleView
,所以我知道的方法工作。
在此先感謝
你試過路過標題代替navigationTitle! ? – arvidurs
是的,不幸的是沒有工作,所以我試圖將它傳遞給一個局部變量(navigationTitle) – zachenn
這裏至少有2個語法錯誤,其餘的程序缺席。你確定問題在這裏嗎? – Ssswift