Использование контроллера MultipleView в представлении контейнера - PullRequest
0 голосов
/ 28 августа 2018

Я создаю приложение для iOS, которое имеет много разных видов, а также сложное.

У меня есть панель вкладок с 4 страницами, как в

  1. Аккаунт
  2. Главная страница
  3. Кошелек
  4. Мои списки

когда пользователь будет нажимать на список (опция 4-го числа), мое приложение должно отображать заголовок с сегментированным элементом управления (или любая верхняя панель, такая как элемент управления еще не определен). Я хочу переместить сюда Multiple ViewController. скажем, верхняя панель имеет 5 кнопок, как в

  1. Домашний список
  2. Относительный список
  3. Список друзей
  4. офисный список
  5. список клиентов

Для этого другого списка я сделал другой контроллер View. что я хочу переместить в Мой список (который является контроллером основного вида и будет рассматриваться как контроллер основного вида и будет содержать вышеупомянутые 5 кнопок). В этом контроллере основного вида, когда я нажимаю кнопку Домашний список или список друзей, он перемещается, связанный Просмотреть контроллер чуть ниже этой верхней панели (список кнопок)

Для получения дополнительной информации см. Рисунок ниже. И просто дай мне знать, как я могу это сделать. , Как я могу сделать конкретную область, которая будет занята дочерним контроллером View.

See this picture for question

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Если представления SegmentControl имеют одинаковую конструкцию, вам не нужны отдельные ViewController для каждого. Если в каждом списке совершенно разные пользовательские интерфейсы, есть много способов сделать это.

1 - Используйте scrollview, его ширина контента будет Screenwidth * количество просмотров. Просто добавьте все виды в scrollView.

Например, вы хотите добавить два вида. Вот код

    self.scrollView.contentSize = CGSize(width: UIScreen.main.bounds.size.width * 2, height: self.scrollView.frame.height)
    let vc1 = your view controller
    vc1.view.frame =  CGRect(x: 0, y: 1, width: scrollView.frame.size.width , height: scrollView.frame.size.height)

    let vc2 = your second viewcontroller
    vc2.view.frame =  CGRect(x: UIScreen.main.bounds.size.width, y: 1, width: scrollView.frame.size.width  , height: scrollView.frame.size.height)


    scrollView.addSubview(vc2.view)
    scrollView.addSubview(vc1.view)

Теперь, если вы хотите изменить видимый вид

scrollView.scrollRectToVisible(CGRect(x: UIScreen.main.bounds.size.width * CGFloat(//Position of your view 1 or 2), y: 0.0, width: UIScreen.main.bounds.size.width, height: scrollView.frame.size.height), animated: true)

2- Использовать контейнеры

3 - Есть также очень хорошие библиотеки с открытым исходным кодом (pods). Одна из них - CarbonKit https://github.com/ermalkaleci/CarbonKit

0 голосов
/ 28 августа 2018

Ну, я думаю, вы немного запутались, используя представление «Контейнер», используя IB или программно. когда вы используете в IB, вы должны просто создать связанный класс для него. Точно так же, как вы создаете View Controller, перетаскивая его из библиотеки объектов и связывая его с классом Coca Touch UIViewController.

Я предлагаю посмотреть этот учебник. это тихо, просто и легко понять. но ответ на ваш вопрос:

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

@IBOutlet var viewMain: UIView!

и просто переместите контроллер Child View с этим

viewMain.addSubview(childViewController)

Вы сделали

...