gpt4 book ai didi

iphone - 以编程方式构建/导航导航 Controller

转载 作者:可可西里 更新时间:2023-11-01 06:21:15 24 4
gpt4 key购买 nike

之前:

我的应用程序基于独立的 View Controller 。我可以通过替换应用程序委托(delegate)上的 Root View Controller 来从一个切换到另一个:

ade.window.rootViewController = newController;

...到现在为止一切正常。

明天:

我们必须在我们的应用程序中添加一个基于 NavigationController 的部分,这将帮助用户通过我们的导航:

品牌 => 型号名称 => 颜色

因此,用户将选择一种颜色,然后单击一个按钮:现在我将切换到另一个 UIViewController(称之为“pippo”),它实际上驻留在该导航层次结构之外(我无法将它插入导航-几个方法的 Controller ,我被迫这样做!)。

我想要的是从“pippo”回到我的“Color”屏幕。所以,我正在寻找一种以编程方式“导航”我恢复的导航 Controller 的方法,我的意思是:

  • 我恢复了我的导航 Controller

  • 现在我在品牌上,但我不希望我的用户在这里,我想向他们展示他们上次使用的颜色(我将其保存在首选项中)

    <
  • 如何模拟选择已知品牌和型号?

非常感谢。

最佳答案

在 App 委托(delegate)的 applicationDidFinishLoading 中:

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];

[window makeKeyAndVisible];
[window addSubview:navController.view];

这将实例化导航 Controller 并将其作为 View 添加到窗口。

现在,在您的 rootViewController 类(假设它称为 FirstViewController)中,您可以这样做:

- (void)clickedAButton:(id)selector {
SecondViewController *nextViewController = [[SecondViewController alloc] initWithNibName:nil bundle:nil];
// and push it onto the 'navigation stack'
[self.navigationController pushNavigationController:nextViewController animated:YES];
// and release
[nextViewController release];
}

在您的 SecondViewController 中,您可以使用以下方法返回堆栈:

- (void)clickedAnotherButton:(id)selector {
// goes back to the last view controller in the stack
[self.navigationController popViewControllerAnimated:YES];
}

所以对你来说它会是:

在 app delegate 中使用 Brand 设置导航 Controller 作为 Root View Controller 用户选择他们的品牌,然后您pushViewController:animated: Model View Controller 。然后用户选择他们的模型,然后您pushViewController:animated: Color View Controller 。同样,用户选择一种颜色,然后您推送 Pippo View Controller 。现在,如果用户按回键(或者您调用 popViewControllerAnimated:),它将返回到 Color View Controller ,其状态与用户离开时的状态相同Pippo Controller 。

关于iphone - 以编程方式构建/导航导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7241923/

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