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