从xib/nib加载视图时的奇怪行为
问题描述:
从xib/nib加载视图时,我遇到了我的应用程序的奇怪行为。 我无法访问我的控件我连接代码的界面生成器 - 意味着我不能替换它们或更改文本和排序。 (虽然控件仍会触发IBActions,但按钮点击) 我有这个问题已经与uisearchbar。但广泛删除并再次添加它,并在Interface Builder中重新设置它以某种方式解决了这个问题。 iPad/iPhone uiSearchbar transparent background从xib/nib加载视图时的奇怪行为
我想避免在这个xib中的每一个血腥控制做这个,所以我试图把它钉死。我发现,只要我从我的xib加载视图,奇怪的行为就开始了。 (虽然已经工作的控件,作为uisearchbar,继续工作)
我所做的是加载一些视图(从相同的xib视图控制器是所有者)将它们放入滚动视图。这个作品很好..
这里是代码:
UIView *viewContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 2304, 575)];
NSArray *nibViews1 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view1 = [nibViews1 objectAtIndex:1];
NSArray *nibViews2 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view2 = [nibViews2 objectAtIndex:1];
NSArray *nibViews3 = [[NSBundle mainBundle] loadNibNamed:@"ViewController_iPad" owner:self options:nil];
PrescriptionView *view3 = [nibViews3 objectAtIndex:1];
NSMutableArray *arrayViews = [[NSMutableArray alloc] init];
[arrayViews addObject:view1];
[arrayViews addObject:view2];
[arrayViews addObject:view3];
int intX = 1;
int intY = 1;
for (UIView *viewImage in arrayViews)
{
[viewImage setFrame:CGRectMake(intX, intY, 768, 575)];
[viewContainer addSubview:viewImage];
intX = intX + 768;
}
[arrayViews release];
[prescriptionScrollView setContentSize:CGSizeMake(2304, 575)];
[prescriptionScrollView addSubview:viewContainer];
[viewContainer release];
安迪的想法?建议?这是一个错误?
非常感谢。
问候 牛逼
答
对于此更新,我敢肯定这是一个错误。 将视图放入自己的nib文件中,而不是从同一个xib中加载视图,这有助于摆脱这种奇怪的行为。 无论如何,我提出了一个与苹果支持票,但由于一些愚蠢的原因两次拒绝我的票后,我厌倦了尝试。 感谢任何花时间阅读本文的人。 欢呼!
答
你如何定义你的网点?应该这样定义它们:
@property (nonatomic, retain) IBOutlet MyView *myViewOutlet;
另请注意,插座应该在viewDidUnload和dealloc中释放和剔除。