0

我在場景stucked enter image description here解僱的viewController後,popViewController將無法正常工作

我soundPlayerVC作爲pageContentVC的childeViewController。

soundPlayerVC當前郵件modalViewController:

- (IBAction)emailStory:(id)sender { 

if ([MFMailComposeViewController canSendMail]) { 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 
    Anecdote *anecdote = (Anecdote *)story; 
    [picker setSubject:anecdote.name]; 
    [picker setMessageBody:[SearchHandler removeMarkupsFromPageText:anecdote.detail] isHTML:NO]; 
    [self.parentViewController presentViewController:picker animated:YES completion:nil]; 
} 

    #pragma mark - mail compose delegates 
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    [controller dismissViewControllerAnimated:YES completion:nil]; 
} 

,但是當我後退按鈕點擊,popViewController不起作用,因爲navigationController已被清空!

怎麼回事? 有人可以解釋嗎?

回答

1

我找到了解決辦法: 那是因爲我沒有在正確的viewController不是popViewController。

pageContentVCbookRootVC孩子這麼bookRootVC負責從navigationController棧中移走pageContnetVC的。

我創建了一個協議,並添加一個代表屬性pageContnetVC和分配bookRootVC作爲pageContnetVC

protocol DismissViewControllerDelegate <NSObject> 
- (void)popViewController; 
@end 

bookRootVC委託實現協議:

#pragma mark pop view controller delegate 
- (void)popViewController 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

viewDidLoad

self.pageViewController.delegate = self; 

最後backButton在pageContentVC中調用它的委託從navigationController中刪除這個視圖。

多數民衆贊成!