Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.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 如何将navigationcontroller添加到uiviewcontroller_Iphone - Fatal编程技术网

Iphone 如何将navigationcontroller添加到uiviewcontroller

Iphone 如何将navigationcontroller添加到uiviewcontroller,iphone,Iphone,我试着这么说,它说的是糟糕的访问。[崩溃] 如何看待这个问题 @提前感谢您在第一行设置了自动释放(alloc/init) 然后在第三行显式释放视图控制器 因此,您过度释放此对象并导致崩溃 您可以删除[employeeDetailed release]行,一切正常。您不能将UINavigationController添加到现有的导航堆栈中。您不需要这样显示新的导航控制器模式: employeeDetailed = [[[EmployeeDetailedViewController alloc]

我试着这么说,它说的是糟糕的访问。[崩溃]

如何看待这个问题


@提前感谢

您在第一行设置了自动释放(alloc/init)

然后在第三行显式释放视图控制器

因此,您过度释放此对象并导致崩溃


您可以删除[employeeDetailed release]行,一切正常。

您不能将UINavigationController添加到现有的导航堆栈中。您不需要这样显示新的导航控制器模式:

employeeDetailed  = [[[EmployeeDetailedViewController alloc] initWithNibName:@"EmployeeDetailedViewController" bundle:nil] autorelease];
    UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:employeeDetailed] autorelease];
    [employeeDetailed release];
    [self.navigationController pushViewController:navController animated:YES];

这将对您有用。请尝试一下。

我发现在应用程序的特定部分中显示导航控制器的最佳方法如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.
    // Set the view controller as the window's root view controller and display.
    UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];
    self.window.rootViewController = navController;
    [self.window makeKeyAndVisible];

    return YES;
}



employeeDetailed  = [[[EmployeeDetailedViewController alloc] initWithNibName:@"EmployeeDetailedViewController" bundle:nil] autorelease];

[self. navigationController presentModalViewController: navController];
然后在myViewController.m中 使用


@谢谢,我忘了内存问题了。!你能帮我弄清楚怎么推ViewController吗?它不推铍,你不能把新的UINavigationController推到现有的导航堆栈上。您引用了self.navigationController,因此我假设当前控制器是堆栈的一部分。在这种情况下,您应该能够简单地使用:[self.navigationController pushViewController:employeeDetailed animated:YES];是的,我使用了[self.navigationController-pushViewController:employeeDetailed-animated:YES];控制器仍然没有做任何事情!self.navigationController是否存在?i、 e.您确定当前控制器是导航堆栈的一部分吗?我不想要presentmodalviewcontroller,先生。我需要PushView控制器,然后只按
员工详细信息
,不按
导航控制器
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.
    // Set the view controller as the window's root view controller and display.
    UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];
    self.window.rootViewController = navController;
    [self.window makeKeyAndVisible];

    return YES;
}



employeeDetailed  = [[[EmployeeDetailedViewController alloc] initWithNibName:@"EmployeeDetailedViewController" bundle:nil] autorelease];

[self. navigationController presentModalViewController: navController];
MyViewController *myViewController = [[MyViewController alloc]initwithnibname :@"MyViewController"];
    UINavigationController *myNavC = [[UINavigationController alloc]initWithRootViewController:myViewController];
[self.NavigationController pushViewController: XController animated:YES];