Segue VS didDeselectRowAtIndexPath
Segue VS didDeselectRowAtIndexPath
我正在使用 didDeselectRowAtIndexPath
浏览不同的故事板,例如:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let story = ["News","Video","Twitter","Request Info","More"]
let vc = self.storyboard?.instantiateViewControllerWithIdentifier(story[indexPath.row]) as NewsFeedTableViewController
self.presentViewController(vc, animated: true, completion: nil)
}
但是,当我使用这个功能时,Navigation Bar
没有出现。但是,当我使用 segue 时,Navigation Bar
出现了。
现在的问题是:
Cells
在 tableView
中不能超过 1 个故事板
- 需要导航栏在应用程序中滚动(这似乎需要
Segue
)
有什么解决办法吗?
您正在使用 presentViewController
,这就是您没有获得 NavigationBar 的原因,它以模态方式呈现视图。而不是 pushViewController
像:
self.navigationController?.pushViewController(vc, animated: true)
可能在您的情节提要中,segue 类型是 push
,这就是您获得导航栏的原因。
您可能对以下内容感兴趣:
您正在展示下一个视图控制器,而不是推送它。 (至少在情况 1 中)所以你有一个模态 link 而没有导航控制器 !
您可以使用 .pushViewController
或简单地 performSegue
并确保您的 segue 类型是 push
。我会选择 performSegue
并更改每个开关盒中的 identifier
名称。
并且您仍然可以在 prepareForSegue
中传递数据
最好在 didSelectRow 中调用 performSegue。并在 perpareSegue 方法中执行操作。
我正在使用 didDeselectRowAtIndexPath
浏览不同的故事板,例如:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let story = ["News","Video","Twitter","Request Info","More"]
let vc = self.storyboard?.instantiateViewControllerWithIdentifier(story[indexPath.row]) as NewsFeedTableViewController
self.presentViewController(vc, animated: true, completion: nil)
}
但是,当我使用这个功能时,Navigation Bar
没有出现。但是,当我使用 segue 时,Navigation Bar
出现了。
现在的问题是:
Cells
在tableView
中不能超过 1 个故事板- 需要导航栏在应用程序中滚动(这似乎需要
Segue
)
有什么解决办法吗?
您正在使用 presentViewController
,这就是您没有获得 NavigationBar 的原因,它以模态方式呈现视图。而不是 pushViewController
像:
self.navigationController?.pushViewController(vc, animated: true)
可能在您的情节提要中,segue 类型是 push
,这就是您获得导航栏的原因。
您可能对以下内容感兴趣:
您正在展示下一个视图控制器,而不是推送它。 (至少在情况 1 中)所以你有一个模态 link 而没有导航控制器 !
您可以使用 .pushViewController
或简单地 performSegue
并确保您的 segue 类型是 push
。我会选择 performSegue
并更改每个开关盒中的 identifier
名称。
并且您仍然可以在 prepareForSegue
最好在 didSelectRow 中调用 performSegue。并在 perpareSegue 方法中执行操作。