2014-01-26 61 views
1

我正在用robovm開發一款遊戲&關於ios的libgdx,如何覆蓋UIViewController.viewWillAppear如何覆蓋iOS上的UIViewController函數?

(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification 
               object:nil]; 

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

回答

1

由於通常有兩種方式:

  • 子你的viewController,並重新定義 - (空)viewWillAppear中:(BOOL)動畫

  • 類別爲UIViewController中執行方法混寫(見例如Method Swizzle on iPhone device

+0

謝謝你們,但我在Robovm上用Java開發遊戲。 –

3

你c通過提供一個名稱與您父類相同的方法來覆蓋您的方法:該新方法將替換繼承的定義。確保您的方法具有相同的返回類型,並採用與您覆蓋的方法相同的參數數量和類型。

所以才重新定義在子類中-(void)viewWillAppear:(BOOL)animated

根據Apple Doc,不鼓勵使用財產的子類別。