簡體   English   中英

關閉2個模態視圖控制器

[英]Dismiss 2 modal view controllers

我有一個基本的模態視圖控制器。 然后我創建一個第二個:

FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];

從那里,我用以下命令調用第三個視圖控制器:

ScoutingReportViewController *scoutingReport = [self.storyboard instantiateViewControllerWithIdentifier:@"ScoutView"];
[self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:scoutingReport animated:YES];

現在我想回到第一個視圖控制器。 我試過了(這是當前顯示的視圖控制器):

-(IBAction)doneBtn
{
    //[self.parentViewController dismissModalViewControllerAnimated:YES];  //removed

    [self dismissModalViewControllerAnimated:NO];    //added

    [[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil];  //added

}

在中間視圖控制器中,我在viewDidLoad中添加了一個觀察者:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(dismissModals:)
                                             name:@"CloseAllModalViews"
                                           object:nil];

和方法:

-(void) dismissModals:(id)sender
{
    [self dismissModalViewControllerAnimated:NO];
}

當按下時,它什么都不做。 它不會消除任何意見。

任何想法,我怎樣才能使它工作?

編輯:弄清楚為什么它崩潰了; 我忘記了我在IB中的完成按鈕中添加了segue。 這導致內存問題,並導致崩潰。

編輯2:這會將兩個視圖控制器都退回到基本/第一個視圖控制器。 它沒有給我任何動畫。 我可以不使用動畫關閉當前的VC,也可以不使用動畫關閉中間的VC,但是在過渡之前,我會短暫看到中間的VC。 如果可能的話,我希望有一個從當前VC到基本VC的動畫。

我之前已經做過,而且我不得不使用UINotificationCenter來消除中間視圖。 當您按doneBtn時,發布通知。 在推送其他視圖之前,請添加一個以dismissModal作為操作的觀察者。 如果刪除動畫,它看起來應該像是剛回到原始視圖一樣。

您認為要自動關閉:

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(dismissModals:)
                                                 name:@"CloseAllModalViews"
                                               object:nil];

將其放在您的doneBtn方法中:

[[NSNotificationCenter defaultCenter] postNotificationName:@"CloseAllModalViews" object:nil userInfo:nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM