2012-02-12 80 views
0

儘管在這方面有類似的帖子,我仍然無法正確地使這項工作。 我有兩個UIViewControllers,我用IB設計了UILabels和圖像等。 我想將這些添加到滾動視圖,以便它們可以在頁面之間進行分頁。將viewController視圖添加到UIScrollView

我有定義連接每個scrollViewcontrollers與它們在IB中的元素,然而,控制器本身,我編程方式在viewDidLoad中的主視圖控制器內創建插座。創建它們之後,我從主視圖控制器分配一些值,而不是將其作爲子視圖添加到scrollViewController。然而沒有顯示。從我已經完成的調試中,當我在賦值後設置斷點時,我可以看到元素爲零。它們應該從xib文件加載,但似乎沒有被讀取。即使作爲一個測試,我嘗試初始化其中一個元素(例如UILabel)並將其設置爲該子視圖控制器,但它不會顯示任何內容。這裏有一些代碼可以更好地解釋一下。

在主視圖控制器

detailControllerA *tempA = [[detailControllerA alloc] initWithNibName:@"detailOverviewA" bundle:nil]; 
    self.overviewA = tempA; 
[tempA release]; 
self.overviewA.someLabel.text = @"Some Text"; 
    detailScrollView.contentSize = CGSizeMake(scrollWidth, scrollHeight); 
    detailScrollView.pagingEnabled = YES; 

[detailScrollView addSubview:self.overviewA.view]; 

在detailControllerA實施我設置在的loadView幀:

-(void)loadView { 
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 90)]; 
    self.view = view; 
    [view release]; 

} 

我也有標籤等在detailControllerA.h與IBOutlets定義和實現到xib文件中的元素。

任何想法爲什麼在編程創建xib時不能正確加載?

+0

我猜你需要在做任何事情之前調用[super loadView]。即使你從筆尖加載,我確信loadView仍然是一些如何在控制器中創建你的視圖。 – 2012-02-12 04:45:49

+0

仍然沒有運氣:( – taylormade201 2012-02-12 05:26:36

+1

我現在想通了, 有趣的是, - (void)loadView是問題 由於視圖是在界面生成器(與框架設置)中生成,所以當loadView觸發時,它正在創造一個新視圖,吹掉在界面構建器中創建的視圖。 – taylormade201 2012-02-12 05:30:46

回答

2

嘗試這種方式:

 NSUInteger scrollContentCount = 0; 

     for (NSUInteger arrayIndex = 0; 
      arrayIndex < [contents count]; 
      arrayIndex++) { 


     // set scorllview properties 
     CGRect frame; 
     frame.origin.x = self.mScrollView.frame.size.width * arrayIndex; 
     frame.origin.y = 0; 
     frame.size = self.mScrollView.frame.size; 

     myScrollView.autoresizingMask = YES; 

     // alloc - init PODetailsView Controller 
     myController = [[MyController alloc] initWithNibName:@"MyController" bundle:[NSBundle mainBundle]]; 

     [myController.view setFrame:frame]; 

     // add view in scroll view 
     [self.myScrollView addSubview:myController.view]; 

     scrollContentCount = scrollContentCount + 1; 
    } 

// set scroll content size 
self.myScrollView.contentSize = 
    CGSizeMake(self.myScrollView.frame.size.width * scrollContentCount, 
         self.myScrollView.frame.size.height); 
} 

不要鬆開內容控制器對象,它是在for循環。

根據您的要求設置您的scrollView contentSize

希望這會對你有所幫助。

0

有趣的是, - (void)loadView是問題所在。

由於視圖是在界面構建器(帶有框架設置)中生成的,因此當loadView觸發時,它將創建一個新視圖,吹掉在界面構建器中創建的視圖。

相關問題