【发布时间】:2016-12-03 15:39:05
【问题描述】:
在我的社交应用程序中,我有一个“主页”屏幕,其中有一个 tableView,其中包含多达 3 个不同的单元格!然后我实现了 didSelect 数据源方法,在这里我执行了一些比较以确定我刚刚选择了哪种单元格...(每次 3 或 4 次比较)对于我选择的每个单元格,都会实例化一个新的视图控制器。一个用于照片演示,另一个用于自定义相机演示,最后是另一个简单的视图控制器演示......
问题是,由于无法解释的原因,如果我按下 iPhone 的主页按钮,然后再次打开我的应用程序并选择其中一个单元格,它需要 7 秒才能显示视图控制器!然后,如果我关闭该视图控制器,返回“主页”并选择另一个单元格,一切正常!
有人知道会发生什么吗?
编辑:
if currentArea != "Somewhere" {
if gettingContent == false && objectsArray.count == 0 {
if firstOfLocalLeaderboard != nil {
if indexPath.row == 0 {
let vc = self.storyboard!.instantiateViewController(withIdentifier: "TopTenAreaController") as! TopTenAreaController
vc.area = currentArea
let navVC = UINavigationController()
navVC.viewControllers = [vc]
self.present(navVC, animated: true, completion: nil)
}
else if indexPath.row == 1 {
if localLeaderboard.count > 0 {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "PhotoViewController") as! PhotoViewController
vc.objectsArray = localLeaderboard
vc.currentArea = currentArea
let navVC = UINavigationController()
navVC.viewControllers = [vc]
self.present(navVC, animated: true, completion: nil)
}
else {
let vc = self.storyboard!.instantiateViewController(withIdentifier: "CameraViewController") as! CameraViewController
vc.appearedFromHome = true
let navVC = UINavigationController()
navVC.viewControllers = [vc]
self.present(navVC, animated: true, completion: nil)
}
}
}
else {
if indexPath.row == 0 {
if localLeaderboard.count > 0 {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "PhotoViewController") as! PhotoViewController
vc.objectsArray = localLeaderboard
vc.currentArea = currentArea
let navVC = UINavigationController()
navVC.viewControllers = [vc]
self.present(navVC, animated: true, completion: nil)
}
else {
let vc = self.storyboard!.instantiateViewController(withIdentifier: "CameraViewController") as! CameraViewController
vc.appearedFromHome = true
let navVC = UINavigationController()
navVC.viewControllers = [vc]
self.present(navVC, animated: true, completion: nil)
}
}
}
}
【问题讨论】:
-
您能否发布一些代码以显示相关的
didSelectRow方法以及您的prepareForSegue。 -
你是否在后台线程中做某事?
-
@Rikh 查看更新的代码
-
@Honey Nope....
-
您是否在您的
viewDidAppear或viewWillAppear中做任何可能占用大量时间的事情?还要在您的相关self.present行设置一个断点,并检查当前语句是立即执行还是延迟 7 秒后执行? 所有导航控制器或只有一个导航控制器会发生这种情况吗?
标签: ios swift uitableview didselectrowatindexpath