2011-02-11 69 views
0

從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]; 

安迪的想法?建議?這是一個錯誤?

非常感謝。

問候 牛逼

回答

0

對於此更新,我敢肯定這是一個錯誤。 將視圖放入自己的nib文件中,而不是從同一個xib中加載視圖,這有助於擺脫這種奇怪的行爲。 無論如何,我提出了一個與蘋果支持票,但由於一些愚蠢的原因兩次拒絕我的票後,我厭倦了嘗試。 感謝任何花時間閱讀本文的人。 歡呼!

0

你如何定義你的網點?應該這樣定義它們:

@property (nonatomic, retain) IBOutlet MyView *myViewOutlet; 

另請注意,插座應該在viewDidUnload和dealloc中釋放和剔除。