-1

我正在尝试开始使用 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];       
}

但它停止了工作。我不确定如何才能使这项工作。

4

2 回答 2

1

将 a 设置UINavigationController为您的 rootViewController UIWindow,如下所示:

- (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;
}

然后在返回时将 viewController 弹出堆栈,如下所示:

-(void)backHome:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}
于 2012-08-12T08:05:20.960 回答
0

要真正了解 iOS 的基础知识,我建议购买一本书并正确学习。就在最近,我收到了一本关于 iOS 的 Big Nerd Ranch 书,我发现它很有帮助。祝你的冒险好运!

要回答你的问题,Markus 说得对,你需要一个 rootViewController,你可以从它上面推送其他视图(例如,当按下按钮时),然后返回主视图,弹出顶部的视图。

于 2012-08-12T11:00:09.360 回答