2012-02-01 87 views
6

HI有一個自定義視圖類,使用下面的代碼加載並放置在我的主視圖中。它的原因是我想用不同的內容來填充它,而不是每次創建一個自定義的類時都可以在代碼中構建一個視圖,我可以在循環等中重複使用它,我在代碼中工作得很好,即鋪設出按鈕標籤等iOS5將.xib分配給自定義UIView類

但是,而不是手代碼它,我想如果我創建一個新的用戶界面視圖,然後構建視覺上我的文本字段,標籤和按鈕在這個視圖。

然後將其連接到我的自定義類。

這是我遇到問題的地方,如何連接此視圖xib文件,以便在放置在我的代碼中時可見。我已將xib文件中的自定義類屬性分配給我的自定義文件,但是我還缺少了什麼?

.h文件中:

#import <UIKit/UIKit.h> 

@interface blogView : UIView 

@end 

.m文件:

#import "blogView.h" 

@implementation blogView 

- (id)init 
{ 
    self = [super initWithFrame:CGRectMake(0, 0, 478, 220)]; 
    if (self != nil) 
    { 
     NSLog(@"Blog View loaded"); 

     self.backgroundColor = [UIColor yellowColor]; 

     UILabel *titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 400, 40)]; 
     [titleLbl setText:@"This is the Title"]; 

     [self addSubview:titleLbl]; 

    } 
    return self; 
} 

@end 

我的廈門國際銀行文件具有相同的名稱blogView.xib這是一個視圖用戶界面。

在我的主視圖控制器,並在viewDidLoad中我有

blogView *blogItem = [[blogView alloc]init]; 
    [self.view addSubview:blogItem]; 

當我運行,這是所有工作正常,但我想鏈接到的.xib文件,以節省時間等 感謝

回答

14

井具有環顧四周,並試圖線索和建議的位我設法用下面可以做到這一點的看法:

在我的.m文件我放在/更改了以下內容:

self = [super init]; 
    if (self != nil) 
     {  
      NSArray *theView = [[NSBundle mainBundle] loadNibNamed:@"blogView" owner:self options:nil]; 
      UIView *nv = [theView objectAtIndex:0]; 

    .. rest of code. 

    [self addSubview:nv]; 

.. rest of code. 

非常感謝

+0

嗯我不能讓它在init中工作,相反它似乎工作,如果你把它放在drawRect中: - (void)drawRect:(CGRect)rect { NSArray * theView = [[NSBundle mainBundle ] loadNibNamed:@「RatingPickerView」owner:self options:nil]; UIView * nv = [theView objectAtIndex:0]; [self addSubview:nv]; } – Dan2552 2012-03-19 13:53:58

+0

但是,您如何爲它製作控制器,以及如何從包含視圖的控​​制器中引用控制器? – Dan2552 2012-03-19 14:12:23

+0

??你是什​​麼意思 – 2013-07-19 14:03:53

0

您可能需要爲您的視圖控制器,並加載使用initWithNibName:bundle:

+0

感謝後非常惱火的建議嘗試本作發佈前年齡,但就是無法得到這個工作,不停地崩潰。 – 2012-02-01 23:41:37

4

我這個奮鬥了一個小時,當我重新命名視圖 - 控制類。這是我在Xcode 5

  1. 圍棋在查看部分什麼工作你的XIB文件
  2. 點擊文件所有者透明盒左側
  3. 打開您的檢驗標籤(第三個按鈕,右邊 - 在編輯器和組織者之間)
  4. 轉至編輯器管理器視圖選項卡下的身份檢查器(左起第3個)。
  5. 將自定義類 - 類選項修復爲您希望它響應的任何類。

讓剛剛說我是浪費時間與

相關問題