如何获得导航返回按钮标题?

时间:2017-10-24 20:15:34

标签: ios swift uinavigationcontroller

function onCreated(tab) { console.log(`Created new tab: ${tab.id}`) window.close(); } function onError(error) { console.log(`Error: ${error}`); window.close(); } document.addEventListener("click", (e) => { if (e.target.classList.contains("opennewtab")) { browser.tabs.query({active: true, currentWindow: true}).then((tabs) => { browser.tabs.create({ url:"https://stackoverflow.com/users/641534/antonchanning" }).then(onCreated, onError); }); } }); 会导致致命错误:在展开“可选值”时意外发现nil ,而在我的视图控制器中有一个带有标题字符串的后退按钮

如何获取后退按钮的标题字符串?

1 个答案:

答案 0 :(得分:1)

当您引用self.navigationItem.backBarButtonItem时,您应该知道,当self不是topViewController而是紧接在topViewController之下时,这是将在导航栏中使用的条形按钮项{1}}。 self.navigationItem.backBarButtonItem self不是当topViewControllerself.navigationItem.backBarButtonItem时当前可见的按钮,而是另一个视图控制器被推到其上时。{/ p>

你也应该知道:

  

当此属性为nil时,导航项使用其title属性中的值来创建适当的后退按钮。

意味着nil可以是extension UINavigationController { var backButtonText: String? { guard let self.viewControllers.count > 1 else { return nil } let viewController = self.viewControllers[self.viewControllers.count - 2] return viewController.navigationItem.backBarButtonItem?.title ?? viewController.title } } 并且仍然拥有标题。见here

如果你想知道后退按钮使用了什么文字你可以说:

print(self.navigationController?.backButtonText ?? "No back button title")

可以这样称呼:

innerHTML
相关问题