Загружать различные контроллеры представлений в UIView (как iFrame для Xcode)

Я в процессе создания моего первого приложения iPhone с раскадровки в Xcode и застрял. На главном экране есть контроллер вида MemberViewController, который является главным экраном. Этот экран имеет UIView, который меньше, чем контроллер вида, называемый mainContent.

В основном, я хочу иметь возможность загружать в UIView различные контроллеры представлений (все такие же размеры, как UIView).

MemberViewController (домашняя страница) -mainContent (UIView)

GetStartedViewController (отдельный контроллер представлений, который я хочу показать внутри UIView) ProfileViewController (отдельный контроллер представлений, который я хочу показать внутри UIView)

Например, я хочу, чтобы GetStartedViewController имел кнопку, которую я могу нажать, чтобы переключиться на ProfileViewController. Контроллеры представлений должны иметь возможность заменять друг друга внутри основного UIView.

Большое вам спасибо за вашу помощь. Если есть более простой способ сделать это, пожалуйста, дайте мне знать.

Я использую эту технику очень много. Моя типичная настройка корневого UIViewController (вы называете его memberController ) имеет представление с UITabBar внизу, а затем еще один UIView (вы называете его mainContent ), который содержит остальную часть пространства над этой панелью.

memberController остается на экране. Внутри mainContent добавьте UINavigationController и инициализируйте его первым GetStartedViewController контентом GetStartedViewController . Когда вы хотите переключить вкладки на панели вкладок, отправьте соответствующее сообщение этому UINavigationController и представления будут меняться внутри.

СОВЕТ: скажем, ваш UINavigationController называется navController – вы можете избавиться от панели навигации (синий сверху), отправив сообщение [navController setNavigationBarHidden:TRUE];

EDIT: запрошенный код выглядит следующим образом. Это добавляет навигационный контроллер к виду окна в методе applicationDidFinishLaunchingWithOptions . Вместо окна просто сделайте то же самое на своем контроллере вида в viewDidLoad .

window и navController – оба свойства

  self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.navController = [[UINavigationController alloc] initWithRootViewController:[YourViewController new]]; [self.navController setNavigationBarHidden:YES]; [self.window addSubview:self.navController.view]; [self.window makeKeyAndVisible]; 

Надеюсь это поможет!

  • «ViewWillTransitionToSize:» не вызывается в iOS 9, когда контроллер представления представлен модально
  • UIModalPresentationCurrentContext и willRotateToInterfaceOrientation
  • Инициализация переменных UIViewController
  • Что делает настройка rootViewController UIWindow?
  • Каков шаблон, который использует UIKit для определения правильного имени ножа для загрузки?
  • Просмотреть жизненный цикл контроллера на UIModalPresentationOverCurrentContext
  • Чистый способ принудительного просмотра представлений
  • Как я могу реализовать делегирование для контроллера представления, представленного segue?
  • Как реализовать интерактивные переходы в настраиваемом контроллере контейнера
  • Отключение нескольких контроллеров просмотра, отображающих неверный вид во время перехода
  • Рамка контейнера в CGRectZero при использовании автоматического макета программы
  • Interesting Posts

    Неоднозначное использование append?

    CLLocation возвращает отрицательную скорость

    Как использовать PolyFill CustomElement v1 в сборке webpack / babel?

    iOS: приложение не отображается в центре уведомлений в настройках

    IONIC 3: Как установить фон на прозрачный в IOS с помощью QR-сканера?

    Выберите музыку из библиотеки iOS и отправьте / сохраните

    Распределение для приложения на iPad 1 составляет 4 раза по сравнению с iPad 2

    Панель вкладок при переключении просмотров

    Громкость уменьшается при записи звука с помощью AVAudioRecorder в IOS

    NSNumberFormatter.string (from:) максимально возможное превышенное значение не приводит к переполнению – Swift

    iOS: как добавить / использовать значки по умолчанию для панели навигации в swift

    Как настроить высоту UISlider

    Swift 3.0 Изменение синтаксиса для UIUserNotificationSettings

    CocoaAsyncSocket и данные чтения из сокета

    Почему этот код распаковывает UIImage намного лучше, чем наивный подход?

    Давайте будем гением компьютера.