Создавайте и выполняйте переход без раскадровок

я получил приложение без раскадровок, все создание пользовательского интерфейса сделано в коде, и я получил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 невозможно делать то, что я хочу, поэтому спасибо за помощь :)

Ответы на вопрос(2)

Ваш ответ на вопрос