从xib/nib加载视图时的奇怪行为

从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中释放和剔除。