gpt4 book ai didi

iphone - 在没有导航 Controller 的情况下切换 View Controller

转载 作者:可可西里 更新时间:2023-11-01 05:02:49 25 4
gpt4 key购买 nike

我敢肯定这个问题已经被问过无数次了,我也见过类似的问题,但我仍然找不到答案。

我有一个带有多个 View Controller 的应用程序,作为一个好的 View Controller ,它可以完成自己的任务。但是我发现自己陷入了无法从一个 View Controller 切换到另一个 View Controller 的困境。我见过很多人说“使用导航 Controller ”,但这不是我想要使用的,因为不需要的 View 元素是 View Controller 的一部分。

我已完成以下操作,但收效甚微。 View Controller 已切换,但 View 未加载,我得到的是一个空 View :

- (IBAction)showLogin:(id)sender
{
PPLoginViewController *login = [[PPLoginViewController alloc] initWithNibName:@"PPLoginViewController" bundle:nil];

PPAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
appDelegate.window.rootViewController = login;

[self.view insertSubview:login.view atIndex:0];
}

最佳答案

使用 UINavigationController 作为 rootViewController 是创建 iOS 应用程序的好基调。

据我了解,不需要的 View 元素 是导航栏吗?您可以手动隐藏它,设置:

[self.navigationController setNavigationBarHidden:YES];

关于你的情况,如果你想改变你当前的 viewController(针对 iOS 6),你可以只展示一个新的:

[self presentViewController:login animated:YES completion:nil];

或添加 child ( Here is nice example to add and remove a child) :

[self addChildViewController:login];

为什么要将 UINavigationController 设置为根?

1) 首先,它使您的应用程序可见的 View Controller 结构良好。 (尤其是在 iPhone 上需要它)。您始终可以获取堆栈并弹出(或移动)到您想要的任何 viewController。

2) 为什么我总是将导航作为根导航,因为它使应用程序更 可支持,因此向应用程序添加一些功能不会花费太多代码更改。

如果你创建一个(根)viewcontroller 有很多 child ,或者呈现其他 viewcontrolls,它会让你的代码真的很难支持,并制作类似 gode-object 的东西。

关于iphone - 在没有导航 Controller 的情况下切换 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18430253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com