У меня есть UINavigationController
, и я хотел бы, чтобы представление каждого контроллера представления, помещенного в стек, имело общий отступ / поле (например, 25 пикселей со всех сторон).Каков наилучший способ сделать это?
Я изначально думал, что смогу реализовать UINavigationControllerDelegate
и внутри методов navigationController:didShowViewController:animated
или navigationController:willShowViewController:animated
просто изменить кадр контроллера представления, который должен был бытьотображается.Это, кажется, не имеет никакого эффекта, хотя.
Я пытался сделать то же самое внутри методов контроллера вида viewDidAppear
и viewWillAppear
, но это также не сработало.В идеале я не хочу помещать какую-либо логику в контроллеры в любом случае, так как они не всегда могут использоваться внутри контроллера навигации.
Последняя идея, которую я еще не пробовал, заключается в создании «оболочки»Msgstr "UIViewController
, что на самом деле будет помещено в этот стек.Эта обертка добавит реальное представление контроллера представления как подпредставление с рамкой, которая обеспечит желаемое поле.Недостатком здесь является то, что мне нужно будет создать подкласс UINavigationController
и переопределить pushViewController:animated
, где обертка будет инициализирована и отправлена.В документации Apple указано, что UINavigationController
не предназначен для использования в подклассах.
Заранее спасибо.