![](/img/trans.png)
[英]View.UILabel.text not changing after switch between viewControllers
[英]Difficulties changing between viewControllers in xcode
我有3個不同的viewControllers。 第一個是主頁,您將在其中看到許多圖像縮略圖。 僅當單擊圖像時,第二個控制器才會打開。 最后一個ViewController是在用戶未登錄但嘗試查看第二個控制器或單擊主控制器上的登錄名時打開的登錄名。 在登錄控制器中,我有一個返回按鈕可以轉到主頁。 請記住,用戶可以通過兩種不同的方式訪問登錄名。 通過單擊圖像或直接在主控制器中單擊登錄。 因此,問題在於后退按鈕確實可以正常工作。 當直接從主控制器訪問登錄頁面時,返回按鈕可以正常工作,它將帶您進入主頁。 但是,如果單擊任何縮略圖,則第二個控制器將嘗試打開,但是由於未登錄,將顯示您的登錄頁面,並且當您單擊后退按鈕將您發送到主控制器時,它將不會轉到主控制器取而代之的是,它將重新加載同一頁面,並且您必須循環登錄才能退出該應用程序。 有什么想法嗎?
第一個ViewController標識符設置為“ mainImages”。
- (IBAction)backToMain:(id)sender {
[self dismissViewControllerAnimated:NO completion:nil];
NSString * storyboardName = @"MainStoryboard";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController * MI = [storyboard instantiateViewControllerWithIdentifier:@"mainImages"];
UINavigationController *navController = self.navigationController;
if (navController) {
[navController pushViewController:MI animated:NO];
}
}
我也嘗試過,但是沒有運氣:
[self dismissViewControllerAnimated:NO completion:nil];
UIViewController * MI = [self.storyboard instantiateViewControllerWithIdentifier:@"mainImages"];
[self presentViewController:MI animated:NO completion:nil];
如果您以模態呈現,請嘗試以下操作:
- (IBAction)backToMain:(id)sender {
[self dismissViewControllerAnimated:NO completion:^{
UIWindow *window = [[UIApplication sharedApplication].windows firstObject];
UINavigationController *nav = (UINavigationController *)window.rootViewController;
[nav popToRootViewControllerAnimated:YES];
}];
}
如果您需要從登錄視圖“返回”到任何其他視圖(在本例中為其中的2個),則應嘗試使用“模態搜索”,“模態搜索”會丟失導航控制器視圖堆棧,但允許您關閉登錄視圖然后返回您的最后一個視圖。
在第一個(或縮略圖視圖控制器)上,顯示新的模態視圖,如下所示:
UIViewController *modalViewController = [[UIViewController alloc] init];
[self presentViewController:modalViewController animated:YES completion:nil];
然后關閉(在登錄視圖控制器上):
- (IBAction)backToMain:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.