2017-01-23 2 views
0

Привет, я новичок в iOS Development, я разрабатываю приложение iOS, в котором я хочу использовать тот же самый нижний колонтитул в приложении. Теперь я создаю различные uiviews в каждом контроллере, но это не оптимальный способ. Как создать единый uiview и повторно использовать его в приложении. Я использую раскадровки. В моем нижнем колонтитуле у меня есть четыре кнопки.Как повторно использовать один и тот же UIView во всех диспетчерах просмотра в приложении iOS

+0

Создайте класс uiview и добавьте в него нижний колонтитул в коде, подклассируйте его и используйте для всех ваших других видов. – vishnuvarthan

+1

Почему вы не используете 'TabBar'? Простой и лучший способ использования TabBar. –

+0

Если мы используем табуляцию, все представления будут иметь кнопку в нижнем колонтитуле – Eagle

ответ

1

Создайте свой многоразовый вид как XIB и загрузите его программно там, где вам это нужно. This answer показывает, как обращаться XIB s.

Это должно хорошо работать для нижнего колонтитула.

Для более сложных многоразовых представлений, которые имеют смысл иметь свой собственный UIViewConroller:

  • создать ViewController в раскадровке
  • экземпляр так:

    let storyboard = UIStoryboard(name: "MyStoryboardName", bundle: nil) 
    let controller = storyboard.instantiateViewController(withIdentifier: "someViewController") 
    
  • добавить его в качестве child viewController:

    func add(childViewController controller: UIViewController, embedViewIn containerView: UIView) { 
        controller.willMove(toParentViewController: self) 
        addChildViewController(controller) 
        containerView.addSubview(controller.view) 
        // addCustomConstraints 
    } 
    

Вы можете позже удалить ребенок ViewController так:

func remove(childViewController controller: UIViewController) { 
    controller.willMove(toParentViewController: nil) 
    controller.view.removeFromSuperview() 
    controller.removeFromParentViewController() 
} 
+0

Я пропустил тег obj-c. Сожалею. Помимо синтаксиса, он работает одинаково. – shallowThought

+0

Как я могу это сделать с раскадровки – Eagle

+0

Вы не можете использовать раскадровку для первого подхода. Но XIB похож на раскадровку для просмотров без vieeController. Попробуй. – shallowThought

Смежные вопросы