Это приложение для iPhone?Если так, то это объясняет путаницу.На iPhone единственным стилем представления является UIModalPresentationFullScreen
- это означает, что на iPhone корневой контроллер представления всегда является контроллером представления .Что ж, в интерфейсе панели вкладок представление UITabBarController является корневым контроллером представления.
Вы заметите, что на iPhone модальное представление не заменяет представление вашего контроллера представления;он заменяет весь интерфейс , что означает, что он заменяет представление контроллера панели вкладок.Это потому, что контроллер панели вкладок действительно является контроллером представления.
Я предполагаю, что на iPhone вам действительно не следует отправлять presentViewController:
или presentModalViewController:
в контроллер представлениясодержится в контроллере панели вкладок.Вы должны отправить его в контроллер панели вкладок.Поэтому сообщение направляется на контроллер панели вкладок для вас.
Итак, ничего интересного не произойдет со значением presentingViewController
, если вы не на iPad.На iPad вы можете заставить модальное представление заменить представление контроллера представления.Для этого модальное представление modalPresentationStyle
должно быть UIModalPresentationCurrentContext
.И в этом случае его presentingViewController
может фактически быть представлением, которое "толкает контроллер модального представления".