ios - "Warning: Attempt to present... on... whose view is not..." issue when presenting from a childVC -- -


in short, i'm presenting view childvc that's been added view hierarchy, apparently hasn't been added window hierarchy yet.

i've started project , set page-based project. boiler uipageviewcontroller added included rootviewcontroller is:

override func viewdidload() {     super.viewdidload()     // additional setup after loading view, typically nib.     // configure page view controller , add child view controller.     self.pageviewcontroller = uipageviewcontroller(transitionstyle: .scroll, navigationorientation: .horizontal, options: nil)     self.pageviewcontroller!.delegate = self      let startingviewcontroller: cameraviewcontroller = self.modelcontroller.viewcontrolleratindex(0, storyboard: self.storyboard!)!     let viewcontrollers = [startingviewcontroller]     self.pageviewcontroller!.setviewcontrollers(viewcontrollers, direction: .forward, animated: false, completion: {done in })      self.pageviewcontroller!.datasource = self.modelcontroller      self.addchildviewcontroller(self.pageviewcontroller!)     self.view.addsubview(self.pageviewcontroller!.view) // !! -- viewdidappear cameraviewcontroller called here      // set page view controller's bounds using inset rect self's view visible around edges of pages.     var pageviewrect = self.view.bounds     if uidevice.currentdevice().userinterfaceidiom == .pad {         pageviewrect = cgrectinset(pageviewrect, 40.0, 40.0)     }     self.pageviewcontroller!.view.frame = pageviewrect      self.pageviewcontroller!.didmovetoparentviewcontroller(self)      // add page view controller's gesture recognizers book view controller's view gestures started more easily.     self.view.gesturerecognizers = self.pageviewcontroller!.gesturerecognizers } 

the line changed setting own vc startingviewcontroller:

 let startingviewcontroller: cameraviewcontroller = self.modelcontroller.viewcontrolleratindex(0, storyboard: self.storyboard!)! 

i'm trying have first screen camera - imagepickervc. here code that. can see, adding uiimageview camerviewcontroller show preview, trying first present uiimagepickercontroller on viewdidappear:

import uikit  class cameraviewcontroller: uiviewcontroller, uinavigationcontrollerdelegate, uiimagepickercontrollerdelegate {     @iboutlet var imageview: uiimageview!      @ibaction func didtapcamerabutton(sender: anyobject) {         presentimagepicker();      }      var dataobject: anyobject?      var imagepicker: uiimagepickercontroller!        override func viewdidload() {         super.viewdidload()         // additional setup after loading view, typically nib.             }      override func viewdidappear(animated: bool) {         super.viewdidappear(animated);          presentimagepicker();     }       override func didreceivememorywarning() {         super.didreceivememorywarning()         // dispose of resources can recreated.     }      func presentimagepicker() {         imagepicker =  uiimagepickercontroller()         imagepicker.delegate = self         imagepicker.sourcetype = .camera          presentviewcontroller(imagepicker, animated: false, completion: { () -> void in              println("save bolean")         })     }       func imagepickercontroller(picker: uiimagepickercontroller, didfinishpickingmediawithinfo info: [nsobject : anyobject]) {         imagepicker.dismissviewcontrolleranimated(true, completion: nil)         imageview.image = info[uiimagepickercontrolleroriginalimage] as? uiimage     }    } 

however, i'm getting warning , imagepicker never presented:

warning: attempt present <uiimagepickercontroller: 0x14e833a00> on <here.cameraviewcontroller: 0x14e614af0> view not in window hierarchy! 

i've set breakpoints , found viewdidappear cameraviewcontroller called on line when adding pageviewcontroller rootviewcontroller:

 self.view.addsubview(self.pageviewcontroller!.view) // !! -- viewdidappear cameraviewcontroller called here 

this seems should why error? view got added it's in rootviewcontroller's view hierarchy.


i added button present uiimagepickercontroller manually cameraviewcontroller. presents find without problem.


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -