Создавайте и выполняйте переход без раскадровок
я получил приложение без раскадровок, все создание пользовательского интерфейса сделано в коде, и я получилsplitView
что я бы сделал его пригодным для использования на iPhone, потому что, поскольку приложение изначально было разработано только для iPad, то есть, когда вы выбираете строку в списке в главном представлении, оно ничего не делает на iPhone, но работает нормально на iPad.
Поэтому мой вопрос заключается в том, могу ли я создать и выполнить переход, который позволяет отображать подробный вид наdidSelectRowAtIndexPath
метод?
Вот что я сделал до сих пор:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!)
performSegueWithIdentifier("test", sender: self)
}
но при запуске и выборе строки приложение зависало, сообщая, что ему нужен обработчик выполнения, поэтому я добавил это:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let segue = UIStoryboardSegue(identifier: "test", source: self, destination: detailViewController!, performHandler: { () -> Void in
let object = self.fetchedResultsController.objectAtIndexPath(indexPath)
let controller = self.detailViewController!
controller.detailItem = object
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
})
performSegueWithIdentifier("test", sender: self)
}
и теперь при выделении строки xcode говорит, что с таким идентификатором «test» нет перехода.
Я также пытался назвать этоsegue.perform()
и добавьте содержимое executeHandler в prepareForSegueMethod:
if segue.identifier == "test" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let object = self.fetchedResultsController.objectAtIndexPath(indexPath)
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
controller.detailItem = object
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}
и он ничего не делает, не вылетает, просто выделите строку, которую я выбрал, и это все
Ребята, вы можете мне помочь?
РЕДАКТИРОВАТЬ: Как сказал Олег Гордийчук, без Storyboards невозможно делать то, что я хочу, поэтому спасибо за помощь :)