我有一個簡單的應用程序與2個屏幕。 當我按下一個按鈕從第一個到第二個時,一切都成功執行(包括動畫)。然而,當我點擊第二個屏幕上的後退按鈕,我得到以下警告:目的C:後退按鈕繼續不工作
Warning: Attempt to present <getTextViewController: 0x8f6aa30> on <SecondViewController: 0x946cc80> whose view is not in the window hierarchy!
編輯:請不要參考我關於上述警告的其他問題 - 我已經看到了這些,他們指其他事宜。
但是,它仍然切換回第一個屏幕。然而,segue的動畫不能執行。 另外:當我返回到第一個屏幕時,第一個屏幕中的信息(如輸入的文本)仍然保留,而第二個屏幕中的信息每次出現時均會重置。
這是我如何調用這兩個操作:
守則getTextViewController.m(查看1):
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier] isEqualToString:@"F21"]){
UIViewController *v = [segue destinationViewController];
[self dismissViewControllerAnimated:NO completion:nil];
v = self;
}
}
-(void)performSegue:(NSString*)str{
[self performSegueWithIdentifier:str sender:self];
}
//In some other method:
[self performSegue:@"F21"];
守則SecondViewController.m(查看2):
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier] isEqualToString:@"F12"]){
UIViewController *v = [segue destinationViewController];
[self dismissViewControllerAnimated:NO completion:nil];
v = self;
}
}
-(void)performSegue:(NSString*)str{
[self performSegueWithIdentifier:str sender:self];
}
- (IBAction)goBack:(id)sender {
[self performSegue:@"F12"];
}
我非常感謝任何幫助,以理解爲什麼第一次繼續工作,而第二次沒有。
謝謝
院長
注:這裏是整個項目 - https://github.com/dean13-meet/firstIOSApp 編輯:更新飯桶。
您的github項目缺少getTextViewController .h和.m文件。 – rdelmar
爲什麼你甚至需要一個後退?這個功能是內置的!你得到你的錯誤信息是因爲你關閉了你的'SecondVC',然後嘗試從那個被駁回的'VC'呈現一個新的'VC'。 – Marc
不要使用segue從第二個視圖控制器返回第一個視圖,並簡單地使用您已經使用的[self dismissViewControllerAnimated:NO completion:nil]方法。 – nikhil84