2017-02-22 1 views
0

Я хотел бы сделать простой ViewController с двумя или тремя кнопками и ярлыками. Когда я нажимаю кнопку, он воспроизводит аудиофайл.Как создать много похожих ViewControllers

Я хочу сделать сотни подобных подобных экранов, что является лучшим способом его создать? (Я сейчас создаю его с помощью MainStoryBoard.)

Для каждой страницы я хотел бы внести небольшие изменения, такие как размеры кнопок, номера кнопок, тексты меток и аудиофайлы.

Рисование текстовых пузырей или использование файла xib может быть хорошим, но я не уверен, что мне нужно.

+0

Не уверен, что вы спрашиваете – sasquatch

+0

почему вы хотите, чтобы сделать сотни страниц? – RSon1234

+0

Используйте единый диспетчер представления раскадровки и создайте несколько экземпляров этого ... – Tj3n

ответ

2

Сначала необходимо иметь свой собственный класс для этой UIViewController в качестве базового класса, который имеет кнопки, метки и т.д.

Затем с помощью Factory Design шаблона для создания унаследованного класса UIViewController, который позволяет сделать некоторые твик, что подходит вам.

Factory Design Pattern

BaseViewController { 
    UIButton *button1; 
    UIButton *button1; 
    UILabel *label1; 
} 

ChildViewControllerA : BaseViewController { 
    UIButton *button3 
} 

ChildViewControllerB : BaseViewController { 
    UIButton *button4 
} 

Factory : NSObject { 
    + (BaseViewController)generateChildViewController: (int) type { 
     switch (type) 
      case 0: 
       return [[ChildViewControllerA alloc] init]; 
      case 1: 
       return [[ChildViewControllerB alloc] init]; 
    } 
} 

Main { 
    - (void)createThreeViewControllers { 
     BaseViewController *vc1 = [Factory generateChildViewController:0]; 
     vc1.button1.backgroundColor = [UIColor blueColor]; 
     BaseViewController *vc2 = [Factory generateChildViewController:0]; 
     vc2.button2.center = cgpointmake (100, 150); 
     BaseViewController *vc3 = [Factory generateChildViewController:0]; 
     vc3.label1.text = @"vc3 test"; 
    } 
} 
+0

«Вам нужно чтобы иметь свой собственный класс для этого UIViewController «Означает ли это, что я должен сделать все с помощью кода? В настоящее время я устанавливаю кнопки, метки и т. Д. С помощью MainStoryBoard, и было бы сложно написать код для каждого другого ViewController .....:/ – rebecca87

+0

@ rebecca87 как то, что я написал, вам все равно нужно создать класс контроллера базового представления, который вы может назначить его Viewcontroller в вашем раскадровке. После этого вы можете сохранить работу, чтобы отредактировать их в коде, и вам по-прежнему необходимо настроить эти элементы в соответствии с вашими потребностями в коде для всех созданных вами экземпляров любыми способами (например, Factory). Глупо создавать все экземпляры ViewController один за другим в раскадровке, особенно они почти одинаковы, что может быть разрешено Inheritance. –

+0

um «Сохраните работу, чтобы отредактировать их в коде, и вам все равно нужно настроить их». Это значит, что я могу скопировать код и вставить его в новый ViewController? Мне просто нужно сделать ViewController для каждой новой страницы, а не создавать ее в StoryBoard? – rebecca87