0

3 つの異なる UIViewController があり、それぞれのインスタンスを最も効率的な方法で作成したいと考えています。現在、1つずつ作成して動作しますが、唯一の違いはクラス名とフレームであるため、すべてをループで作成できると思いますが、その方法がわかりません。ここにコードがあります

Sub1ViewController *sub1 = [self.storyboard instantiateViewControllerWithIdentifier:@"Sub1"];
sub1.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.scrollViewMain addSubview:sub1.view];

Sub2ViewController *sub2 = [self.storyboard instantiateViewControllerWithIdentifier:@"Sub2"];
sub2.view.frame = CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.scrollViewMain addSubview:sub2.view];

Sub3ViewController *sub3 = [self.storyboard instantiateViewControllerWithIdentifier:@"Sub3"];
sub3.view.frame = CGRectMake(2*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);
[self.scrollViewMain addSubview:sub3.view];

どうすればより良い実装になると思いますか?

ありがとう

4

1 に答える 1

0
- (void)myMethod
{
    [self addControllerWithID:@"Sub1" frame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [self addControllerWithID:@"Sub2" frame:CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [self addControllerWithID:@"Sub3" frame:CGRectMake(2*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)];
}

- (void)addControllerWithID:(NSString *)controllerID frame:(CGRect)frame
{
    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:controllerID];
    controller.view.frame = frame;
    [self.scrollViewMain addSubview:controller.view];
}
于 2013-01-16T08:27:47.470 に答える