Iphone 以编程方式构建/导航导航控制器

Iphone 以编程方式构建/导航导航控制器,iphone,ios,uiviewcontroller,uinavigationcontroller,navigation,Iphone,Ios,Uiviewcontroller,Uinavigationcontroller,Navigation,之前: 我的应用程序基于独立的视图控制器。我可以通过替换应用程序委托上的根视图控制器从一个切换到另一个: ade.window.rootViewController = newController; 。。。到现在为止,一切都很顺利 明天: 我们必须在我们的应用程序中添加基于NavigationController的部分,这将帮助用户浏览我们的: 品牌=>型号名称=>颜色 因此,用户将选择一种颜色,然后单击一个按钮:现在我将切换到另一个UIViewController(称之为“pippo”),它

之前:

我的应用程序基于独立的视图控制器。我可以通过替换应用程序委托上的根视图控制器从一个切换到另一个:

ade.window.rootViewController = newController;
。。。到现在为止,一切都很顺利

明天:

我们必须在我们的应用程序中添加基于NavigationController的部分,这将帮助用户浏览我们的:

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

因此,用户将选择一种颜色,然后单击一个按钮:现在我将切换到另一个UIViewController(称之为“pippo”),它实际上位于导航层次结构之外(有几种方法我无法将其推入导航控制器,我被迫这样做!)

我想要的是回到我的“彩色”屏幕,从“皮波”。因此,我正在寻找一种方法,以编程方式“导航”我还原的导航控制器,我的意思是:

  • 我恢复我的导航控制器

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

  • 如何模拟对知名品牌和型号的选择


非常感谢。

applicationdFinishLoading
应用程序内委托:

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

[window makeKeyAndVisible];
[window addSubview:navController.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];
}
所以对你来说,它会是:

在应用程序代理中设置导航控制器,并将
品牌
作为根视图控制器
用户选择他们的品牌,然后您
pushViewController:animated:
Model视图控制器。然后,用户选择他们的模型,然后按下视图控制器:动画:视图控制器的颜色。类似地,用户选择一种颜色,然后按下
Pippo
视图控制器。现在,如果用户按下back键(或调用
PopViewControllerInitiated:
),它将返回到
颜色
视图控制器,状态与用户离开视图控制器转到
Pippo
控制器时相同。

在AppDelegate.m类中编写以下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
   MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    self.nav = [[UINavigationController alloc] initWithRootViewController:mainViewController];
    self.nav.navigationBarHidden = YES;
    [mainViewController release];
   [_window addSubview:nav.view];
   [_window makeKeyAndVisible];
 }

soorry,错误的回答有两个原因:我引用了我的帖子:“pippo”,它实际上位于导航层次结构之外(我不能在导航控制器中推送它,因为有几种方法,我是被迫这样做的!)。所以你知道我不能,我不想在导航控制器中推送“pippo”。-此外,我希望在没有用户交互的情况下导航控制器:-\我想不出有哪一种场景不能将viewcontroller推送到导航堆栈上。然而,你是老板。使用push和pop方法可以在没有用户交互的情况下导航堆栈。无论如何,我帮不了你,因为我真的不明白了。我的“皮波”是一个定制的图像采集器,一个照相相机。不过,我会尝试在没有动画的情况下推广我的品牌和模型视图控制器,看看它能做什么。好的,酷。通过使用UIView动画,您可以在
pushViewController:animated: