Как метод может сказать, какой контроллер представления вызвал его - PullRequest
6 голосов
/ 01 июля 2011

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

Пожалуйста, помогите мне

Ответы [ 3 ]

39 голосов
/ 01 июля 2011

Если это приложение на основе навигации, вы можете получить текущий контроллер вида,

UIViewController *currentVC = self.navigationController.visibleViewController;
12 голосов
/ 01 июля 2011

Допустим, myCommonMethod: - это общая функция, вызываемая обоими контроллерами представления. Вы можете проверить свой viewController, является ли он членом класса или нет, используя isMemberOfClass: метод NSObject.

-(void) myCommonMethod:(UIViewController*) aViewController
{
      if([aViewController isMemberOfClass:NSClassFromString(@"MyFirstController")])
      {
      }
      else if([aViewController isMemberOfClass:NSClassFromString(@"MySecondController")])
      {  

      }
}
3 голосов
/ 01 июля 2011

Если оба ваших контроллера вида вызывают одну и ту же функцию, вы можете передать self в качестве параметра в этом методе, для этого вы можете написать функцию как -

-(void) functionName:(UIViewController*) viewController
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...