【问题标题】:Back to main view controller from modal View controller从模态视图控制器返回主视图控制器
【发布时间】:2013-01-08 16:49:21
【问题描述】:

我想制作一个从模态视图到主视图的后退按钮。

视图控制器嵌入在导航控制器中。菜单按钮将我带到第二个视图控制器。我有一个后退按钮,使用它可以正常工作:

[self.navigationController popViewControllerAnimated:YES];

我想从第二页 VC 回到主视图控制器。

我试过了:

- (IBAction)goToRootView:(id)sender {

[self.presentingViewController dismissViewControllerAnimated:(NO) completion:nil];
[self.navigationController popViewControllerAnimated:YES];
}

和:

- (IBAction)goToRootView:(id)sender {


[self dismissViewControllerAnimated:(NO) completion:nil];
[self.navigationController popViewControllerAnimated:YES];
}

第一个只是回到第二个 VC,最后一个发送和 lldb 错误。

如何从 Mantras Page 2 VC 转到 Main VC?

感谢您的帮助!

【问题讨论】:

    标签: iphone uinavigationcontroller modalviewcontroller viewcontroller ios5.1


    【解决方案1】:

    你可以把这个放在托盘上……

    CHS_View_Controller *oldView = [self.storyboard instantiateViewControllerWithIdentifier:@"CHS_View"];
    UINavigationController *yourNavigationController = [[UINavigationController alloc]  initWithRootViewController:oldView];
    
    yourNavigationController.modalTransitionStyle= UIModalTransitionStyleCrossDissolve;
    
    [self presentViewController:yourNavigationController animated:YES completion:nil];
    

    为此,您必须:

    1) 导入您的目标控制器

    #import "CHS_View_Controller.h" // your controller name
    

    2) 为您的 CHS_Controller 设置一个标识符,在下面的示例中为“CHS_View”(进入 Storyboard Editor 和 Attributes Inspector)

    【讨论】:

    • 我已经尝试过您的 sn-p,但出现此错误:2013-01-25 12:44:30.010 Chingosound[2476:907] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'不支持推送导航控制器'
    • - (IBAction)goToRootView:(id)sender { chsViewController *oldView = [self.storyboard instantiateViewControllerWithIdentifier:@"chs_view_controller"]; UINavigationController *mantrasPageTwoViewController= [[UINavigationController alloc] initWithRootViewController:oldView]; mantrasPageTwoViewController.modalTransitionStyle= UIModalTransitionStyleCrossDissolve; [self presentViewController:mantrasPageTwoViewController animated:YES completion:nil]; }
    • 不要为 NavigationController 使用与 VierController 相同的名称 - 可以“碰撞”。使用任何其他名称:UINavigationController *navig"、"navC" 等 -
    • 在我的例子中,你只需要修改第一行。其余的......可以原封不动地使用它
    • 它现在可以工作了,但它让我回到启用导航栏的主菜单(我已禁用它),也许我应该以编程方式隐藏它?
    【解决方案2】:

    在第一个sn-p中,而不是

    [self.navigationController popViewControllerAnimated:YES];
    

    试试

    [self.navigationController popToRootViewControllerAnimated:YES];
    

    【讨论】:

    • 还是不行,它把我带到了 Mantras View Controller 而不是 Root VC
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 2017-02-13
    • 1970-01-01
    • 2020-02-18
    相关资源
    最近更新 更多