【问题标题】:Add .xib file to a ViewController in storyboard将 .xib 文件添加到情节提要中的 ViewController
【发布时间】:2014-02-24 21:27:34
【问题描述】:

我是 iPhone 开发的新手。

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

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

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

现在,我想将此 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 文件?

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案1】:

    卡洛斯给出的答案可能应该与 1 个调整一起使用。在我看来,您的 .xib 文件可能只包含 UIView 而不是 UIViewController。如果是这种情况,您需要做更多类似的事情:

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

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

    【讨论】:

    • 我在某处使用[views lastObject] 阅读比objectAtIndex:0 更安全。你知道为什么吗?在这个答案中:stackoverflow.com/questions/9648076/…
    • 我想如果没有 objectAtIndex:0 会使您的程序崩溃的对象,则视图 lastObject 只会返回 null。
    【解决方案2】:

    你可以试试:

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

    然后:

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

    【讨论】:

    • 不起作用。应用程序崩溃!你实现了这样的东西还是只是你的猜测?
    • 嗯,我已经用 UITableViewCells 这样做了: UITableViewCell *cell = [[[NSBundle mainBundle] loadNibNamed:@"NameNIBCell" owner:self options:nil] objectAtIndex:0];跨度>
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    相关资源
    最近更新 更多