在选择了显示某些类别的collectionViewController的单元格之后(在navigationViewController内部),我有一个tableViewController显示。我希望导航栏显示所选类别的标题,但标题不会及时更新。
这意味着每当我返回并选择其他类别时,它都会显示旧标题,即标题始终滞后于视图?
这是我在collectionViewController中的代码:
java.lang.invoke.WrongMethodTypeException: cannot convert MethodHandle(VarHandle,byte[],int,byte)void to (VarHandle,Object[])void
并在TableViewController中:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "CategorySelected") {
let vc = segue.destination as! SearchOrgTableViewController
vc.category = selectedCategory
}
}
有什么办法解决吗?
我试图直接在prepare函数中设置标题,结果相同,调用reloadInputViews()也不起作用。
答案 0 :(得分:1)
尝试以下代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "CategorySelected") {
DispatchQueue.main.async {
let vc = segue.destination as! SearchOrgTableViewController
vc.category = selectedCategory
vc.title = category.name } }
}
答案 1 :(得分:0)
在iOS 10中,UIKit已更新并统一了后台管理,用于 UINavigationBar,UITabBar和UIToolbar。特别是对 这些视图的背景属性(例如背景或阴影) 图片或设置条形样式)可能会为 条以解决新的背景外观。特别是这个 表示尝试更改这些条的背景外观 -[UIView layoutSubviews],-[UIView updateConstraints], -[UIViewController willLayoutSubviews],-[UIViewController didLayoutSubviews],-[UIViewController updateViewConstraints]或任何 响应布局而调用的其他方法可能会导致 布局循环。
因此,这会发生。尝试在加载视图或显示视图时更新标题,可能会对您有所帮助。