iphone - ImagePicker in view hierarchy problem -


i can't figure out effective , "elegant" method doing task. problem definition is: want display several views, 1 of them imagepicker camera roll source.

the hierarchy looks similar this: main view ---> picker ---> image processing view when user tap "back button" ui has allow backward displaying.

i have tried several options:

1.

a) main view presents picker view modally. b) in didfinishpickingmediawithinfo delegate method dismiss picker modal view , after invoke presentmodalviewcontroller image processing view.

sample code:

- (void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info {     uiimage* pickedimage = [info valueforkey:uiimagepickercontrollereditedimage];     lastviewcontroller* vc = [[lastviewcontroller alloc] init];     vc.mainimage = pickedimage;      [self dismissmodalviewcontrolleranimated:no];      [self presentmodalviewcontroller:vc animated:no]; } 

problem that, doesn't works, cause controller can't display next modal after dismissing (previouse won't disappear immediately, main isn't active immediately, , can't present new one).

2. main view presents image processing view modally, after image processing view presenting picker view modally, waiting done, dismissing picker , user can see image processing view image library.

sample code:

in action of main view controller:

imageprocessviewcontroller *vc = [[imageprocessviewcontroller alloc] initwithnibname:@"imageprocessviewcontroller" bundle:nil]; vc.delegate = self; vc.sourcetype = uiimagepickercontrollersourcetypephotolibrary; [self presentmodalviewcontroller:vc animated:no]; [vc release]; 

in imageprocessviewcontroller:

- (void)viewdidload {     [super viewdidload];      //some ui init here      if(self.sourcetype == uiimagepickercontrollersourcetypephotolibrary) {         uiimagepickercontroller *ipc = [[uiimagepickercontroller alloc] init];         ipc.sourcetype = uiimagepickercontrollersourcetypephotolibrary;         ipc.delegate = self;         ipc.allowsediting = yes;         [self presentmodalviewcontroller:ipc animated:no];         [ipc release];     } }  - (void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary *)info {     uiimage* pickedimage = [info valueforkey:uiimagepickercontrollereditedimage];     self.mainimage = pickedimage;      [self dismissmodalviewcontrolleranimated:no]; } 

problem that, can't call presentmodalviewcontroller in viewdidload method because won't work (it in view controller live cycle guess). tried in viewdidappear, in case have set ivar flag, display picker view once , empty image processing view displayed short time before image picker view , don't want this.

3. tried figure out how use navigation controller this, beacause uiimagepickercontroller using nav controller, private structure , documentation says programmers can't that.

please give me suggestions because lost way @ moment

in main view controller, use viewdidappear:animated: - called when modal transition has finished. can safely start modal transition there.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -