2017-02-22 2 views
0

Ich möchte einen einfachen ViewController mit zwei oder drei Tasten und Beschriftungen machen. Wenn ich den Button drücke, wird eine Audiodatei abgespielt.So erstellen Sie viele ähnliche ViewController

Ich möchte Hunderte von diesem ähnlichen Bildschirm machen, was ist der beste Weg, um es zu erstellen? (Ich erstelle es gerade mit MainStoryBoard.)

Für jede Seite möchte ich kleine Änderungen vornehmen wie Tastengrößen, Tastennummern, Beschriftungstexte und Audiodateien.

Zeichnen von Textblasen oder Verwendung von Xib-Datei könnte gut sein, aber ich bin mir nicht sicher, was ich sollte.

+0

nicht sicher, was Sie – sasquatch

+0

fragen, warum würden Sie Hunderte von Seiten machen wollen? – RSon1234

+0

Verwenden Sie einzelne Storyboard-View-Controller und erstellen Sie mehrere Instanzen davon ... – Tj3n

Antwort

2

Als erstes müssen Sie Ihre eigene Klasse für diese UIViewController als Basisklasse haben, die Tasten, Etiketten usw. hat

Dann Factory Design-Muster verwenden, um die geerbte UIViewController Klasse zu erzeugen, die Sie etwas zwicken erlaubt, zu tun, dass passt du brauchst.

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

"Sie brauchen eine eigene Klasse für diesen UIViewController haben "Muss ich alles mit Code machen? Ich setze derzeit Buttons, Labels etc. mit MainStoryBoard und es wäre schwer Code für jeden anderen ViewController zu schreiben .....:/ – rebecca87

+0

@ rebecca87 als was ich geschrieben habe, musst du noch eine BaseView Controller Klasse erstellen, die du kann es dem Viewcontroller in Ihrem Storyboard zuweisen. Wenn Sie dies getan haben, können Sie die Arbeit speichern, um sie im Code zu bearbeiten, und Sie müssen diese Elemente immer noch an Ihre Bedürfnisse im Code für alle Instanzen anpassen, die Sie auf irgendeine Weise erstellt haben (z. B. Factory). Es ist albern, alle Instanzen von ViewController nacheinander im Storyboard zu erstellen, besonders wenn sie ähnlich sind, was durch Vererbung gelöst werden kann. –

+0

"Speichern Sie die Arbeit, um sie im Code zu bearbeiten, und Sie müssen diese noch anpassen" Bedeutet das, dass ich den Code kopieren und in den neuen ViewController einfügen kann? Ich muss ViewController nur für jede neue Seite erstellen, anstatt sie in StoryBoard zu erstellen. – rebecca87

Verwandte Themen