[英]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.