как переопределить функцию UIViewController на ios?

Я разрабатываю игру с robovm и libgdx на ios, как переопределить UIViewController.viewWillAppear?

(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];
}

person Alan Yin    schedule 26.01.2014    source источник


Ответы (2)


Вы можете переопределить свой метод, предоставив метод с тем же именем, что и у вашего родительского класса: этот новый метод заменит унаследованное определение. Убедитесь, что ваш метод имеет тот же тип возвращаемого значения и принимает такое же количество и тип параметров, что и метод, который вы переопределяете.

Так что просто переопределите -(void)viewWillAppear:(BOOL)animated в своем подклассе.

В соответствии с Apple Doc создание подклассов через использование свойства не рекомендуется.

person tiguero    schedule 26.01.2014

Как обычно, у вас есть два пути:

  • подклассифицируйте свой viewController и переопределите - (void) viewWillAppear: (BOOL) animated

  • выполнить переключение методов в категории для UIViewController (см., например, Метод Swizzle на устройстве iPhone )

person malex    schedule 26.01.2014
comment
все равно спасибо, но я разрабатываю игру с Java на Robovm. - person Alan Yin; 09.02.2014