如何创建许多类似的ViewControllers

时间:2017-02-22 03:14:32

标签: ios uiviewcontroller uistoryboard

我想制作一个带有两个或三个按钮和标签的简单ViewController。按下按钮时,它会播放音频文件。

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

对于每个页面,我想做一些小改动,例如按钮大小,按钮号,标签文本和音频文件。

绘制文本气泡或使用xib文件可能会很好,但我不确定我应该做什么。

1 个答案:

答案 0 :(得分: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";
    }
}