Ios 多导航控制器

Ios 多导航控制器,ios,ios5,uinavigationcontroller,Ios,Ios5,Uinavigationcontroller,我正试图开始学习Navigator Controller教程,但找不到一个包含多个导航控制器的教程 到目前为止,我有以下代码:第一页是一个使用UIViewController的简单主菜单。通过按下第一个按钮,用户可以使用UINavigationController进入客户列表页面,并且后退按钮正确显示在客户列表页面的导航栏上 在我的应用程序委托中,我有以下代码: - (BOOL)application:(UIApplication *)application didFinishLaunching

我正试图开始学习Navigator Controller教程,但找不到一个包含多个导航控制器的教程

到目前为止,我有以下代码:第一页是一个使用
UIViewController
的简单主菜单。通过按下第一个按钮,用户可以使用
UINavigationController
进入客户列表页面,并且后退按钮正确显示在客户列表页面的导航栏上

在我的应用程序委托中,我有以下代码:

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

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
        [self.window makeKeyAndVisible];
        return YES;
}
在负责显示客户列表的视图控制器中,后退按钮调用以下方法:

- (void)backHome:(id)sender {       
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

    appDelegate.window.rootViewController =  viewController;

    [self.navigationController popToViewController:viewController animated:YES];

    // self.window.rootViewController = self.viewController;
    [appDelegate.window makeKeyAndVisible];       
}

但它停止了工作。我不确定如何才能实现此功能。

ui窗口上设置
UINavigationController
作为您的rootViewController,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
        self.window.rootViewController = navigationController;
        [self.window makeKeyAndVisible];
        return YES;
}
-(void)backHome:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}
然后返回时只需在堆栈上弹出viewController,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
        self.window.rootViewController = navigationController;
        [self.window makeKeyAndVisible];
        return YES;
}
-(void)backHome:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}

要真正了解iOS的基本知识,我建议你买本书,好好学习。就在最近,我得到了一本关于iOS的书,我发现它非常有用。祝你的冒险事业好运


要回答您的问题,Markus是对的,您需要一个rootViewController,从中可以将其他视图推到它的顶部(例如,当按下按钮时),要返回主视图,可以将其推到顶部。

English。格式化。空白。缩进。文档努力。谢谢,如果我不想让UINavigationController加载,而只想让UIViewController显示菜单。这将对第二个菜单执行相同的操作,例如FoodMenu,它将使用UITabNavigation。在这种方式下,它将返回到主菜单按钮(UIVIEWCOntroller)感谢您的推荐,我已经做了一些教程和3天的课程了。但我从教程中了解到,对于一个项目,它只涉及一个UINavigatorCOntroller或UITabCOntroller。然而,我尝试做的是主菜单(UIViewController)-客户列表(UINavigationCOntroller)-食物菜单(UIABController),所以如果您知道任何教程和书籍,请咨询,谢谢。