2016-12-15 2 views
0

У меня есть макет в моем приложении, который остается тем же, кроме изображений, которые будут отличаться в зависимости от того, какая кнопка нажата в предыдущем представлении. То, что я собирался сделать, это установить на это, если btn1 нажат на пользователя, который он отобрал на следующий вид, но затем используется VCfile1.swift, и если пользователь нажимает btn2, тогда он переходит к следующему виду и используется VCFile2.swift для того же viewcontroller, созданного в раскадровке. Как я мог это достичь? (Я не уверен, что это правильный метод, но если нет, пожалуйста, посоветуйте)Используйте разные быстрые файлы для одного ViewController?

Swift 3, Xcode 8

+0

Скопируйте ViewController созданный в раскадровке. Установите класс 'VCfile1', другой -' VCfile2'. Перейдите к нужному, в соответствии с тем, какая кнопка нажата. Или: Создайте XIB (view) instad раскадровки и загрузите этот xib в обоих VC программно. – shallowThought

+0

Я не могу создать несколько Viewcontrollers, потому что они будут похожи на 100 viewcontrollers @shallowThought – Henry

+0

Угадайте, что опция 2 для вас тогда (XIB ...). – shallowThought

ответ

1

Первый: Если вам нужно 100 UViewController с, все с той же точки зрения, ваш делать что-то неправильно.

Чтобы повторно использовать один и тот же вид в разных ViewController (.swift) классов, которые вы можете захотеть tocreate ваш UIView как XIB и (повторно) использовать его в ViewControllers программно.

  • Создать класс для просмотра:

    класса MyView: UIView { // }

  • Создать XIB файл (новый -> Файл -> Открыть) MyView.xib, установите его класс до MyView и настройте его под свои нужды.

  • Создать экземпляр и использовать его в UIViewControllers:

    class MyViewController: UIViewController { 
        var myView: MyView? 
    
        override func viewDidLoad() { 
         super.viewDidLoad() 
         myView = UINib(nibName: "MyView", bundle: nil).instantiate(withOwner: self, options: nil).first as? MyView 
         view.addSubview(myView!) 
         // You might want to set constraints here 
        } 
    } 
    
+0

Я создал файл Xib и связал его с одним классом. У меня возникли проблемы с подключением к нему других классов. Я добавил еще один класс и используется класс 'TestAd1: UIViewController { вид вар = TestAd1.instanceFromNib self.view.addSubview (вид()) класс функ instanceFromNib() -> { возвращение UINib (nibName:«AdSpaceShared. xib ", bundle: nil) .instance (withOwner: nil, options: nil) [0] as! UIView } ' – Henry

+0

Обновленный ответ. Надеюсь, это поможет понять эту идею. – shallowThought

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