gpt4 book ai didi

iPhone UINavigationController 应用程序设计

转载 作者:行者123 更新时间:2023-12-03 20:58:11 26 4
gpt4 key购买 nike

尝试着思考如何围绕 UINavigationController 构建应用程序。在我看来,大多数解释都假设应用程序总是从根 Controller 开始,并从那里向下钻取,但我不清楚这如何与进入应用程序之前发生的登录/注册步骤相适应。结构将是这样的:

 Home page                                            | Main app (typical nav hierarchy)
------------ |---------------------------------
Log in ----> Login page | App section 1
------------ | App section 2
Do login ------------------------> | etc.
<- Cancel |
|
Register -------------------> Register page |
----------------- |
Do registration ---> |
<- Cancel |

所以基本上我假设“主应用程序” Controller 实际上应该是应用程序的根 Controller ,对吗?在这种情况下,我不清楚如何处理位于它前面的整个过程(基本上就像与应用程序导航结构分开的导航结构)。 “主页”是显示在主应用程序上的模式 Controller ,也是用于登录/注册步骤的单独导航 Controller ,以便在登录后简单地弹出它以将我们带回到应用程序根目录?

希望我只是把本来很简单的事情复杂化了,只是似乎还没有让我感兴趣。非常感谢任何指点。

编辑:这就是我最终得到的结果,它似乎适合我的需要。我有两个 UINavigationController,它们都分配给 IB 中的 MainWindow,并具有单独的启动 NIB。一个是应用程序启动导航 Controller (主页/登录/注册),另一个是主应用程序导航 Controller 。我的应用程序委托(delegate)有以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:startNavController.view];
[window makeKeyAndVisible];
return YES;
}

- (void)activateMainApp {
[startNavController.view removeFromSuperview];
[window addSubview:appNavController.view];
[window makeKeyAndVisible];
}

在登录/注册的最后一步中,我有以下代码,它调用应用程序委托(delegate)以在导航 Controller 之间进行切换:

- (IBAction)continuePressed {
// Transfer control to the main app nav controller:
MyAppDelegate *app = (MyAppDelegate*)[[UIApplication sharedApplication] delegate];
[app activateMainApp];
[app release];
}

我怀疑我可以用一个导航 Controller 来完成这一任务,但是根据我的 View 结构,这对我来说是合乎逻辑的,并且似乎有效,我最终将主主页 View 作为应用程序导航 Controller 的 Root View ,如预期的。如果有什么愚蠢的事情,我们将不胜感激。

最佳答案

您可以在任何阶段创建 UINavigationController,包括在登录屏幕之后 - 只需将其设为您要开始使用它的 View 的 subview 即可。此时您将看到 View Controller (您将其作为新导航 Controller 的 Root View )。拥有它后,您可以将新的 View Controller 推送到导航堆栈上。您可以查看导航堆栈

根 Controller 没有什么特别之处,除了您可以通过一次调用 (popToRootViewControllerAnimated) 到达那里,并且您无法弹出更远的位置。导航 Controller 管理的所有 View Controller 都位于堆栈上,因此您可以根据需要压入堆栈或从堆栈中弹出。

我认为当后退箭头有用时它就很有用。

关于iPhone UINavigationController 应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455736/

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