2016-04-19 3 views
0

XCode 7,3 Swift 2,2переключатель ViewController в быстрой, использование неразрешенного идентификатора

Я хотел переключить 3 ViewControllers:

Я удалил по умолчанию ViewController.swift в, и создал SwitchingViewController.swift (подкласс ViewController) , Это мой код:.

blueViewController = stroryboard?.instantiateViewControllerWithIdentifier("Blue") as! BlueViewController 
blueViewController.view.frame = view.frame 
switchViewController(from: nil, to:blueViewController) 

Проблема заключается в «Использование неразрешенного идентификатора„switchViewController“

Я пытался использовать по умолчанию ViewController.swift, и я все еще была проблема

. Как я могу сделать?

спасибо.

+3

Ну, если это называется 'SwitchingViewController' затем использовать это вместо' switchViewController'. Но я полагаю, что метод внутри 'SwitchingViewController' называется' switchViewController', поэтому вам нужно сделать 'SwitchingViewController.switchViewController()' – LinusGeffarth

+0

Использовать SwitchingViewController вместо switchViewController? –

+0

Можете ли вы показать, как вы объявили свой класс и метод, который вы пытаетесь вызвать? – LinusGeffarth

ответ

0

вы должны убедиться, что все, что вы хотите позвонить, был еще объявлен. с switchViewController не предоставляется Apple, вам нужно будет создать его самостоятельно.

Если вы создаете func switchViewController(to:from:)внутриSwitchingViewController класс на вы можете просто вызвать его, введя switchViewController(to:from:) (со значениями).
Если вы хотите позвонить ему из другого класса, вы должны называть его по адресу класс, в котором он объявлен, например: SwitchingViewController.switchViewController(to:from:) (со значениями).

Я надеюсь, что помогает :)

P.S .: Если вы хотите, чтобы сделать простой переход к ViewController, уже существуют методы, написанные Apple. Если вы используете раскадровки, вы можете, например, использовать performSegueWithIdentifier("").

0

Итак, вы используете книгу iPhone Development с Swift? Они определяют эту функцию после ее использования; довольно глупая идея с их стороны, так как она собирается выбросить ошибку, и они не дали понять в тексте, который вы напишете позже.

Переверните несколько страниц, и вы увидите, что они определяют нижнюю функцию. Она может отличаться в зависимости от версии книги (мой скор 2)

private func switchViewController(from fromVC:UIViewController?, to toVC:UIViewController?){ 
    if fromVC != nil { 
     fromVC!.willMoveToParentViewController(nil) 
     fromVC!.view.removeFromSuperview() 
     fromVC!.removeFromParentViewController() 

    } 

    if toVC != nil{ 
     self.addChildViewController(toVC!) 
     self.view.insertSubview(toVC!.view, atIndex: 0) 
     toVC!.didMoveToParentViewController(self) 
    } 

} 
Смежные вопросы