Как проверить, принадлежит ли UIViewController к определенному подклассу в задаче c? - PullRequest
21 голосов
/ 07 ноября 2010

Я хочу иметь возможность проверить тип UIViewController, чтобы увидеть, если он определенного типа, как этот

код C

if (typeof(instance1) == customUIViewController) 
{
  customUIViewController test = (customViewController)instance1;

  // do more stuff
}

Ответы [ 6 ]

39 голосов
/ 07 ноября 2010

Метод isKindOfClass: указывает, является ли объект экземпляром данного класса или экземпляром подкласса этого класса.

if ([instance1 isKindOfClass:[CustomUIViewController class]]) {
    // code
}

Если вы хотите проверить, является ли объект экземпляром данного класса (но не экземпляром подкласса этого класса), используйте isMemberOfClass:.

14 голосов
/ 18 мая 2015
var someVC: UIViewController

if someVC is MyCustomVC {
    //code
}
9 голосов
/ 25 февраля 2015

Swift версия:

var someVC: UIViewController

if someVC.isKindOfClass(MyCustomVC) {
    //code
}
5 голосов
/ 07 ноября 2010

Попробуйте:

[vc isKindOfClass:[CustomViewController class]];
3 голосов
/ 18 апреля 2017

Я просто хотел добавить в дополнение к этот ответ , что если вы хотите посмотреть, относится ли контроллер представления к определенному типу в операторе switch ( в Swift) вы можете сделать это так:

var someVC: UIViewController?

switch someVC {
    case is ViewController01: break
    case is ViewController02: break
    case is ViewController03: break
    default: break
}
2 голосов
/ 24 августа 2017

Swift 3.0 в последнем, мы должны добавить себя вместе с именем класса или будет выдано сообщение об ошибке " Ожидаемое имя члена или вызов конструктора после имени типа " код ниже вы можете использовать для Swift 3 и выше

  for viewController in viewControllers {
                            if viewController.isKind(of: OurViewController.self){
                                print("yes it is OurViewController")
                                self.navigationController?.popToViewController(viewController, animated: true)
                            }
                        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...