iPhone-更换导航控制器中的rootview

iPhone-更换导航控制器中的rootview,iphone,uinavigationcontroller,replace,root,Iphone,Uinavigationcontroller,Replace,Root,我有一个带有NavigationController的项目,其中包含要显示的第一个ViewController。这只是创建项目时的默认模式 在第一个viewController中,我收到一些发送给appDelegate的事件,我希望它用另一个事件替换该rootview。不去下一个 因此,我: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOp

我有一个带有NavigationController的项目,其中包含要显示的第一个ViewController。这只是创建项目时的默认模式

在第一个viewController中,我收到一些发送给appDelegate的事件,我希望它用另一个事件替换该rootview。不去下一个

因此,我:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    // Override point for customization after application launch.
    // Add the navigation controller's view to the window and display.
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

- (void) goNext {

    [self.navigationController popViewControllerAnimated:NO];

    NextViewController* nextWindow = [[[NextViewController alloc] initWithNibName:@"NextView" bundle:nil] autorelease];
    [self.navigationController pushViewController:nextWindow animated:NO];
}
但这不起作用,第一个viewcontroller没有弹出。 第二个按钮逻辑显示为后退按钮


我只想用另一个视图替换第一个视图,作为导航过程的开始。

如果堆栈顶部的视图控制器是根视图控制器,则popViewControllerAnimated不执行任何操作。换句话说,您不能弹出堆栈上的最后一项

要替换根视图控制器,请使用以下方法:

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
发件人:

此方法(popViewControllerAnimated:)从堆栈中删除俯视图控制器并使 堆栈的新顶部是活动视图控制器。如果视图 堆栈顶部的控制器是根视图控制器,如下所示 方法不起任何作用。换言之,您不能弹出屏幕上的最后一项 那一堆

您可以尝试使用
setViewControllers:animated:
方法

- (void) goNext {

    NextViewController* nextWindow = [[[NextViewController alloc] initWithNibName:@"NextView" bundle:nil] autorelease];
    [self.navigationController setViewControllers:[NSArray arrayWithObject:detailViewController] animated:YES];
}

如果堆栈顶部的视图控制器是根视图控制器,
popViewControllerAnimated:
方法不执行任何操作。换句话说,您不能弹出堆栈上的最后一项。您可以尝试使用
setViewControllers:animated:
方法。您不能在xib中将您的rootviewcontroller更改为NextViewController吗?更现代的版本:
UIViewController*cont=[[UIStoryboard storyboard storyboard with name:@“MainStoryboard”bundle:nil]实例化viewcontrollerwhiteIdentifier:@“MySceneId”]
self.navigationController.viewControllers=@[cont]