2016-04-03 19 views
0

Düğmeli bir UIViewController var.rootViewController'ı UIViewController'ımdan hızlıca nasıl ayarlayabilirim?

Bu düğme, başka bir UIViewController ürününe geçmesi gereken bir yönteme sahiptir. Daha önce ben tarafından ele etmişti:

self.performSegueWithIdentifier("moveToMainWindow", sender: self) 

fakat bunun bir şeyle değiştirmek istiyorum:

let sb = UIStoryboard(name: "Main", bundle: nil) 
if let tabBarVC = sb.instantiateViewControllerWithIdentifier("MainWindow") as? TabController { 
    self.rootViewController = tabBarVC 

} 

ancak bu hat self.rootViewController = tabBarVC tip viewcontroller değeri hiçbir üye rootViewController sahip olduğunu hatayı getiriyor.

Burada çalışabileceğim herhangi bir şey var mı?

Ben daha sonra ben birkaç kez self.dismissViewControllerAnimated(true, completion: {}) ve aynı zamanda benim MainWindow paneli görevden alır bu durumda yapıyorum çünkü performSegueWithIdentifier yapıyor kaçınmak istiyoruz. Bu yüzden bende bu tip bir paneli değiştirirsem, bu panelin asla gizlenmeyeceğini düşündüm.

cevap

1

rootViewController özelliği uygulama başladığında görüntülenen birinci veya kök görünümü denetleyicisi tanımlayan UIWindow mülkiyet olduğunu ve görünümü denetleyicisi üzerinde mülkiyet olarak belirleyemezsiniz. bunun yerine segues ile görüş denetleyicileri itme yapabilecekleriniz

storyboard aracılığı görünüm denetleyicisi başlatmak ve sonra UIViewController üzerinde showViewController: veya presentViewController: yöntemi kullanarak itin etmektir. Ayrıca

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
if let tabBarVC = storyboard.instantiateViewControllerWithIdentifier("MainWindow") as? TabController { 
    self.showViewController(tabBarVC, sender: self) 
} 

, sen tabBarVC içine dismissViewController:completion: çağırmanız gerekir not: Zaten pratikte aldım.

İlgili konular