2015-05-24 1 views
2

Привет, все, что у меня возникло с моим приложением, что все сеансы из UITableView присутствуют только с «настоящим модально» (снизу вверх), а не показывают (выявить справа)Почему мой UITableView не показывает серию, только представляет мода

соответствующие методы 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 имеет единственную прототипную ячейку, у которой есть segue (show), сформированный путем перетаскивания изнутри ячейки в целевой VC. ViewController настроен как tableViewDataSource и Delegate, а также имеет IBOutlet для childView tableView.

Каждая строка отображается хорошо, а таблицаView выглядит так, как ожидалось (cellForRow .. и все другие методы работают должным образом), однако контроллер представления назначения (контроллер представления на первой вкладке контроллера отображения панели вкладок) всегда прибывает со дна.

Это не проблема с наличием tabBarVC в качестве целевого VC, поскольку эта же проблема возникает даже при использовании общего VC в качестве адресата.

Помогите мне разобраться, почему я не могу представить «Show».

ответ

1

Ваш контроллер ViewController должен быть в UINavigationController, чтобы он работал как push. Для этого выберите свой ViewController с помощью TableView и выберите в появившемся меню меню «Редактор-> Встраивание In-> Navigation Controller.

Как уже отмечалось, UITabViewController не ваш вопрос, но вы не должны непосредственно перейти к UITabBarController. Они должны быть корневым viewController вашего приложения. Правильный способ объединения UINavigationController и UITabController s предназначен для того, чтобы UITabBarController был у корня, а затем каждая вкладка имеет свой собственный UINavigationController.

+0

Удивительно большое спасибо, я знал, что это будет что-то простое. У меня нет отбивных, чтобы расти, но все равно спасибо. Кроме того, теперь, когда я встроил VC, я получаю «двойной segue», но заканчивая тем же VC, любая идея, почему? – vitamike

+0

Опишите, как выглядит двойной segue. – vacawama

+0

Ive разобрал его, это был segue в пункт назначения VC, за которым сразу последовал другой segue от пункта назначения VC к себе (тот же Destination VC), что и шоу segues. Что происходило, так это то, что кнопка, используемая для запуска segue, по-прежнему имела метод performSegueWithIdentifier в качестве своего IBAction, но при этом segue перетаскивался непосредственно из значка UIButton в пункт назначения vc, поэтому, когда он был нажат, он выполнял segue, а затем вызывал «performSegueWithIdentifier .. – vitamike

Смежные вопросы