2017-02-22 99 views
0

我想用两个或三个按钮和标签做一个简单的ViewController。当我按下按钮时,它播放一个音频文件。如何创建许多类似的ViewControllers

我想制作数百个类似的屏幕,创建它的最佳方法是什么? (我目前正在用MainStoryBoard创建它。)

对于每个页面,我想对按钮大小,按钮数字,标签文本和音频文件进行小小更改。

绘制文本气泡或使用xib文件可能是好的,但我不知道我该怎么做。

+0

不知道你是问什么 – sasquatch

+0

为什么要进行数百页? – RSon1234

+0

使用单个故事板视图控制器并创建它的多个实例... – Tj3n

回答

2

首先,您需要有自己的这个的UIViewController为具有按钮,标签基类类等

然后用工厂设计模式来生成继承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)创建的每个实例的代码需求。在Storyboard中逐个创建ViewController的所有实例是很愚蠢的,特别是它们几乎相同,可以通过继承来解决。 –

+0

um“保存编辑它们的工作,你仍然需要调整这些”这是否意味着我可以复制代码并将其粘贴到新的ViewController?我只需要为每个新页面创建ViewController而不是在StoryBoard中创建它? – rebecca87