Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone SDK-以编程方式添加UINavigationController_Iphone_Objective C - Fatal编程技术网

iPhone SDK-以编程方式添加UINavigationController

iPhone SDK-以编程方式添加UINavigationController,iphone,objective-c,Iphone,Objective C,我有一个iPhone项目,目前没有UINavigationController。相反,我通过自己处理视图层次来交换视图。然而,正如您可能知道的那样,这是一种糟糕的做法,因此我正在试图找出如何在我当前的应用程序中实现UINavigationController。显然,我可以重新开始我的项目并使用Xcode模板,但我真的不想这样做 必须有一种方法可以通过编程实现这一点。但我无法确定AppDelegate中需要哪些代码。有没有人有这方面的经验?我现在不知所措 干杯, Brett在Xcode 4的界面编

我有一个iPhone项目,目前没有
UINavigationController
。相反,我通过自己处理视图层次来交换视图。然而,正如您可能知道的那样,这是一种糟糕的做法,因此我正在试图找出如何在我当前的应用程序中实现
UINavigationController
。显然,我可以重新开始我的项目并使用Xcode模板,但我真的不想这样做

必须有一种方法可以通过编程实现这一点。但我无法确定AppDelegate中需要哪些代码。有没有人有这方面的经验?我现在不知所措

干杯,
Brett

在Xcode 4的界面编辑器中,打开初始视图控制器,然后选择 “编辑器>嵌入>导航控制器”

Yeap

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
   navController=[[UINavigationController alloc] init];
   MyViewController *firstController=[[MyViewController alloc] init];
   [navController pushViewController:firstController animated:NO];
   [window addSubview: navController.view];
} 
- (void) dealloc
{
   ...  
   [navController release];
   ...
}
这是一个很常见的问题,看看这个。。。。
创建和释放导航控制器的示例:

UINavigationController *navCon = [[UINavigationController alloc] init];
[navCon pushViewController:yourViewController animated:NO];
[navCon release];

我用这个解决了同样的问题

 - (void)applicationDidFinishLaunching:(UIApplication *)application 
 {
      navController=[[UINavigationController alloc] init];
      MyViewController *firstController=[[MyViewController alloc] init];
      self.window.rootViewController = firstController;
      [self.window addSubview navController.view];

 } 

!![我在我的选项卡栏项目中添加了导航控制器,它工作得非常好

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];


UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];

UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];

UIViewController *viewController3 = [[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil] autorelease];

self.tabBarController = [[[UITabBarController alloc] init] autorelease];


self.tabBarController.viewControllers = @[viewController1, viewController2,viewController3];


self.navigationController= [[UINavigationController alloc]initWithRootViewController:self.tabBarController];
//self.window.rootViewController=self.tabBarController

self.window.rootViewController = self.navigationController;


[self.window makeKeyAndVisible];


return YES;

我认为你应该放动画:是的。因为大多数时候。我们希望控制器在移动到新视图之前制作动画。谢谢:)
self.window.rootViewController = self.navigationController;


[self.window makeKeyAndVisible];


return YES;