2012-04-23 85 views
0

我正在開發一個具有多個視圖的應用程序。我有一個圖像庫模板,我已經在一個xlib文件中創建。該視圖將作爲單個頁面加載到滾動視圖中。我能得到加載多個時間從Xlib中的觀點如下:從nib文件加載UIView問題

- (void)registerForKeyboardNotifications 
{ 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWasShown:) 
               name:UIKeyboardDidShowNotification object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillBeHidden:) 
               name:UIKeyboardWillHideNotification object:nil]; 

} 
- (id)initWithFrame:(CGRect)frame 
{ 
    self = [[[NSBundle mainBundle] loadNibNamed:@"GSEstimateView" owner:self options:NULL] lastObject]; 
    self.commentText.delegate = self; 
    self.scrollView.delegate = self; 
    self.commentText.delegate =self; 
    [self registerForKeyboardNotifications]; 
    return self; 
} 

我現在面臨的第一個問題是,當鍵盤顯示的keyboardWasShown:方法獲取調用盡可能多UIViews我有創建。如果我嘗試從第二個UIView加載鍵盤,我會得到一個被調用的無效選擇器的異常。 UIView是從一個nib或xlib Singleton加載的嗎?如何通過從nib文件加載它來通知我的UIView實例?

回答

0

(^。^)「嗨,對不起我的英語不是很好,如果有人喜歡糾正我的新版本我將不勝感激這個」

嗨第一,我不建議使用NSNotification喜歡使用這樣的協議。

@protocol KeyBoardDelegate <NSObject> 
- (void)KeyBoardVisible:(BOOL)op; 
@end 

如果你有數倍的觀點,如果你想現在這個樣子的視圖控件:

  • * viewDidLoad中,viewDidUnload,viewWillDisappear,viewWillAppear中,和其他人*

我建議像這樣使用UIViewController的視圖。

UIViewControllerCustom *example = [[UIViewControllerCustom alloc] initWithNibName:@"exampleNIB" bundle:[NSBundle mainBundle]]; 
[self.view addSubview:example.view]; 

使用這個你可以採取例如視圖控制器的視圖的控制和使用的方法

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    //When the nib has been loaded. 
} 

- (void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    //When the view is show. 
} 

- (void)viewWillDisappear:(BOOL)animated{ 
[super viewWillDisappear:animated]; 
//The view is hidden 
} 

- (void)viewDidUnload{ 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
} 

而且很多方法。 :)

+0

將xlib視圖添加爲子視圖絕對有意義。我將通過將鍵盤註冊移動到init方法來嘗試一下,看看它是如何發生的。可能是我會去第二個選項,如果這不起作用。謝謝你的幫助。 – 2012-04-23 15:08:20

+0

不客氣。 – NTTake 2012-04-23 15:22:18