大家好我的应用程序一直存在问题,因为UITableView中的所有segues只出现'present modally'(从底部开始)而不是show(从右侧显示)
相关的VC方法是
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 14
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "selectionSegue" {
let tabController = segue.destinationViewController as UITabBarController
if let newController = tabController.viewControllers![0] as? SelectedItemViewController {
if let row = tableView.indexPathForSelectedRow()?.row{
newController.selectedItem = pList[row]
}
}
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
itemViewItem = testList[indexPath.row%testList.count]
// where testList is a preconfigured string array of five items
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
故事板中的:
TableView是具有searchBar和tableView控制器的视图控制器的子视图。 TableVC具有单个原型单元,其具有通过从单元内部拖动到目标VC而形成的segue(show)。 viewController配置为tableViewDataSource和Delegate,并且还有一个用于tableView childView的IBOutlet。
每行显示正常,tableView按预期显示(cellForRow ..和所有其他方法按预期工作)但是目标视图控制器(标签栏视图控制器的第一个选项卡中的视图控制器)总是到达从底部。
将tabBarVC作为目标VC不是问题,因为即使我使用通用VC作为目标,也会出现同样的问题。
帮我弄清楚为什么我无法通过'Show'呈现。
答案 0 :(得分:1)
您的ViewController必须位于UINavigationController
才能作为推送工作。为此,请使用TableView选择ViewController,然后从顶部的菜单中选择编辑器 - >嵌入 - >导航控制器。
如您所知,UITabViewController
不是您的问题,但您不应该转为UITabBarController
。它们旨在成为应用程序的根viewController。合并UINavigationController
和UITabController
的正确方法是UITabBarController
位于根目录,然后每个标签都有自己的UINavigationController
。