我尽力解释正在发生的事情。
我已将XCode更新为版本10.1(10B61)
iPhone和Simulator上的iOS为v 12.1
我的应用程序有一个带有5个标签的TabController。
First: Posts
Fifth: Profile Posts
这些被嵌入到导航控制器中(如果有人 点击评论按钮)
所以。我注意到,如果我运行我的应用程序,然后单击注释,它将以一种奇怪的方式将vc推送到屏幕,然后单击“颠簸”。而且向后滑动也不起作用。
但是,如果我先切换选项卡,则一切正常。
VIDEO:
https://www.youtube.com/watch?v=fgS3j21L8Js
如您在视频中所见,切换到个人资料帖子 +返回后,一切都很好。
更新1:
因此,如果我启动我的应用,请切换到另一个选项卡,然后再回到原始选项卡,就可以正常工作。
请求的代码:
func commentsButtonTapped(sender: UIButton) {
let touchPoint:CGPoint = sender.convert(CGPoint.zero, to:self.tableView)
if let indexPath = tableView.indexPathForRow(at: touchPoint) {
openDetails(indexPath: indexPath, shouldShowKeyboard: false)
}
}
func openDetails(indexPath: IndexPath, shouldShowKeyboard : Bool) {
if (self.tableView.cellForRow(at: indexPath) as? WorldMessageCell) != nil {
let storyboard = UIStoryboard(name: "Additional", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "DetailsViewController") as! DetailsViewController
vc.postId = PostIds.shared.nearby.ids[safe: indexPath.row]
vc.shouldShowKeyboard = shouldShowKeyboard
self.navigationController?.pushViewController(vc, animated: true)
}
}
更新2:
通过强制TabController在选项卡之间切换来解决此问题。
override func viewDidAppear(_ animated: Bool) {
self.selectedIndex = 1
self.selectedIndex = 0
}
但这不是它的工作方式。
更新3:
我已经对其进行了测试,如果我将navigation controller
-> vc
设置为初始vc(因此没有制表符控制器),则一切正常。
但是,一旦Navigationcontroller嵌套在选项卡中,它就会发生。
我创建了一个新项目,以测试这是否是特定于版本的bug,但是没有,一切正常。所以问题一定出在我的应用上。
什么会引起这样的问题(在视频中)?
答案 0 :(得分:0)
哦..我发现了问题和错误:
因此,如果将navigation controllers
嵌套在调用tab controller
函数的viewDidLoad()
中,那么导航控制器将出现问题。
我必须完全删除的代码:
override func viewDidAppear(_ animated: Bool) {
// here i had some code ... /
}
现在一切正常。.