簡體   English   中英

在視圖控制器之間切換

[英]Switching between view controllers

我有三個視圖控制器。 我使用了flipsideproject模板,然后添加了另一個視圖控制器。

第一個視圖控制器上有一個按鈕,可以轉到第二個視圖控制器。 第二個視圖控制器上有一個按鈕,可以返回第一個視圖。 在第一和第二之間切換時,這些按鈕將始終起作用。

第二個和第三個視圖控制器的情況相同。 當我嘗試在第一到第二到第三然后再回到第一之間進行轉換時,它不起作用。

(1-> 2-> 3-> 2-/-> 1)我的畫圖不好描繪了這種情況。

我將所有后退按鈕都連接到后部IBAction,我認為這是問題所在。 然后我做了另一個IBAction,但它沒有解決問題。

1st view controller = MainViewController 2nd VC = FlipSideViewController 3rd VC = ChooseAlarmSound

這是用於2-> 1(這是我認為的問題。有時它可以工作)

- (IBAction)done:(id)sender 
{ 
   [self.delegate flipsideViewControllerDidFinish:self]; 
} 

這是為了2→3

- (IBAction)chooseSound:(id)sender 
{ 
    ChooseAlarmSound *controller = [[[ChooseAlarmSound alloc] initWithNibName:@"ChooseAlarmSound" bundle:nil] autorelease]; 
    controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentModalViewController:controller animated:YES]; 
}

這是為了進行3-> 2

- (IBAction)goBack:(id)sender 
{ 
    FlipsideViewController *controller = [[[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil] autorelease];
    controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentModalViewController:controller animated:YES]; 
}

您使用modalviewcontroller展示了您的第三個VC(從2到3)。 但后來你嘗試使用另一個modalVC回到第二個VC(從第3個到第2個)。 這不會讓你回到之前的第二個VC的實例。 您需要使用dismissmodalviewcontrolleranimated方法來執行此操作。 在modalviewcontroller類參考上查看Apple網站上的詳細信息。

如用戶523234所建議,您需要做的就是打電話

[self dismissModalViewControllerAnimated:YES]

在里面

- (IBAction)goBack:(id)sender 

第三個視圖控制器的方法,而不是你正在做的,它創建第二個視圖控制器的另一個實例並呈現它。

現在不起作用的原因是,當您按下第二個視圖控制器中的完成按鈕時,它將調用

 - (IBAction)done:(id)sender 
{ 
   [self.delegate flipsideViewControllerDidFinish:self]; 
}

正在向第二個視圖控制器的委托發送消息,在您從3-> 2開始的情況下,您沒有設置該委托。

暫無
暫無

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

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