2016-08-10 7 views
0

新しいストーリーボードで新しいView Controllerを開こうとすると、viewheirarchyエラーが発生します。ビュー階層エラー - 新しいストーリーボードで新しいView Controllerを開こうとしています

override func viewDidLoad() { 
     super.viewDidLoad() 

     if type == .Products {    
      self.presentViewController(UIStoryboard(name: "Fold", bundle: nil).instantiateViewControllerWithIdentifier("MainTableViewController") as! UITableViewController, animated: true, comp 
     } 
    } 

答えて

1

私はこれはStoryboardError列挙

0であるあなたがそれ

override func viewDidLoad() { 
    super.viewDidLoad() 

    if type == .Products {    
    do { 
     let yourViewController = try showYourViewController() 
     setRootViewController(yourViewController) 
    } catch StoryboardError.InvalidCast { 
     print("Your View Controller was not of the expected type") 
    } catch _ { 
     print("Some other error occurred...") 
    } 
    } 
} 

を使用することができます作成​​FUNC今

func showYourViewController() throws -> UINavigationController { 
    if let navigationController = storyboard.instantiateInitialViewController() as? UINavigationController { 
     if let mainTableViewController = navigationController.topViewController as? MainTableViewController { 
     mainTableViewController.delegate = self 
     } else { 
     throw StoryboardError.InvalidCast 
     } 
     return navigationController 
    } else { 
     throw StoryboardError.InvalidCast 
    } 
} 

をプライベートVAR

private var storyboard = UIStoryboard(name: "Fold", bundle: NSBundle.mainBundle()) 

を作成することをお勧め

enum StoryboardError: ErrorType { 
    case InvalidCast 
} 
関連する問題