NavigationController, который автоматически создал UIViewController 2
Это все объясняет.Когда вы перетаскиваете контроллер навигации в раскадровку, вы получаете контроллер навигации и его корневой контроллер представления, а контроллер корневого представления - UITableViewController.
Давайте на шаг вернемся.Контроллер представления может и должен иметь ровно один основной вид.Он занимает всю сцену.Это не может быть изменено.Он не может иметь одноуровневое представление, потому что у него нет супервизии, для которого одноуровневое представление является дочерним.У него могут быть только дочерние элементы (подпредставления).
Что ж, в этом случае ViewController2 является UITableViewController, а MyTableView является основным представлением ViewController2.(Контроллер табличного представления всегда настраивается таким образом, и это то, что вы получили, когда перетаскивали контроллер навигации в раскадровку.) Именно поэтому вы не можете добавить к нему больше представлений, кроме как в виде подпредставлений, например содержимого прототипа ячейки.Вашей кнопке некуда идти, кроме внутри табличного представления.
Итак, что делать?
Если вам нужен дополнительный интерфейсДобавить - это просто кнопка, обычное решение - поместить ее в панель навигации .Он становится частью элемента навигации контроллера табличного представления.
Если вы не хотите этого делать, то есть действительно хотите, чтобы кнопка и табличное представление были родственными элементамидруг друга в интерфейсе - тогда вам нужно заменить сам ViewController2 на обычный контроллер представления.Теперь его основной вид будет обычным, и вы можете перетащить в него все что угодно, в том числе вид таблицы и кнопку.Скорее всего, вместо пустого табличного представления вы бы использовали контейнерное представление , с embed segue для контроллера табличного представления.