将.xib文件添加到storyboard中的ViewController

时间:2012-09-24 20:58:05

标签: iphone objective-c ios xcode

我在iPhone开发方面有点新鲜。

我有一个包含ViewController的故事板。在ViewController中,我有一个UIScrollView。

我想在scrollView中添加两个图像和其他控件。我阅读this link,并决定实施描述为答案的想法,但不是他以编程方式进行的方式。

我创建了一个新的.xib文件,然后添加一个UIView并在其中添加我的UIImages和标签。

现在,我想将这个UIView添加到故事板中的UIScrollView。这是我的代码:

OfferUIView *newPageView = [[OfferUIView alloc] init];
self.newPageView.contentMode = UIViewContentModeScaleAspectFill;
newPageView.frame = frame;
[self.scrollView addSubview:newPageView];
[self.pageViews replaceObjectAtIndex:page withObject:newPageView];

它不适用于我的UIView,它是一个.xib文件,但只是我添加了一个像UIImageView这样的例子:

UIImageView *newPageView = [[UIImageView alloc] initWithImage:image];
self.newPageView.contentMode = UIViewContentModeScaleAspectFill;
newPageView.frame = frame;
[self.scrollView addSubview:newPageView];
[self.pageViews replaceObjectAtIndex:page withObject:newPageView];

然后它完美无缺。那么如何修复我的代码以添加.xib文件?

2 个答案:

答案 0 :(得分:2)

Carlos给出的答案可能应该进行1次调整。听起来像你的.xib文件可能只包含一个UIView而不是一个UIViewController。如果是这种情况,您需要做更多的事情:

NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"NameOfXIB" owner:self options:nil];
UIView *view = [views objectAtIndex:0];

或者您需要更改.xib文件以包含UIViewController,但听起来并不像您所追求的那样。

答案 1 :(得分:0)

您可以尝试:

UIViewController *temporaryController = [[UIViewController alloc] 
                                          initWithNibName:@"NameOfXIB" 
                                                   bundle:nil];

然后:

[self.scrollView addSubview:[temporaryController view]];