gpt4 book ai didi

iphone - init ViewController 根据传入的参数加载不同的 XIB

转载 作者:行者123 更新时间:2023-11-29 13:39:24 25 4
gpt4 key购买 nike

我有一个显示一组缩略图的 View Controller ,最初它只显示 12,但我想允许更改它以允许不同的数字 9、6、4、2。

其中每一个都有不同的布局,所以我想加载不同的 XIB 但使用相同的 View Controller 类。所以我希望我可以通过传递一个参数来实现这一点,该参数可以让我知道在初始化时加载哪个 XIB。

这是我目前的初始化:

-(id) initWithPriceLevel: (NSNumber *) aPriceLevel withLabelTemplate:(NSString *) aLabelTemplate withPageSize: (int) aPageSize {
self = [self init];
if (self) {
self.priceLevel = aPriceLevel;
self.labelTemplate = aLabelTemplate;
if ([aPriceLevel isEqualToNumber:[NSNumber numberWithInt:0]]) {
self.key = @"BasePrice";
} else {
self.key = [NSString stringWithFormat: @"PriceLevel%@", aPriceLevel];
}

queue = dispatch_queue_create("com.myapp.thumbnailimages", NULL);
}
return self;
}

我假设我可以在 aPageSize 上使用某种开关,让我加载不同的 XIB。

最佳答案

这很简单,我会保留这个问题以防它对其他人有帮助。我像这样修改了我的 init:

-(id) initWithPriceLevel: (NSNumber *) aPriceLevel withLabelTemplate:(NSString *) aLabelTemplate withNibName:(NSString *) aNibName {
if ([aNibName isEqualToString:@""]) {
aNibName = @"PageCollectionViewController";
}
self = [self initWithNibName:aNibName bundle:nil];
if (self) {
self.priceLevel = aPriceLevel;
self.labelTemplate = aLabelTemplate;
if ([aPriceLevel isEqualToNumber:[NSNumber numberWithInt:0]]) {
self.key = @"BasePrice";
} else {
self.key = [NSString stringWithFormat: @"PriceLevel%@", aPriceLevel];
}

queue = dispatch_queue_create("com.myapp.thumbnailimages", NULL);
}
return self;
}

我添加了参数来传递一个 Nib 名称,如果它只是一个空字符串,我使用默认的 Nib 名称。这非常有效,并为我提供了我一直在寻找的灵 active 。

关于iphone - init ViewController 根据传入的参数加载不同的 XIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9601894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com