【问题标题】:Objective-c: start app with second view with a navigation barObjective-c:使用导航栏的第二个视图启动应用程序
【发布时间】:2011-07-26 03:08:34
【问题描述】:

我正在为 Ipad 创建一个应用程序,我创建了 3 个带有导航栏的视图,但我不想在第一个视图中而是在第二个视图中启动我的应用程序,我该怎么办?

【问题讨论】:

    标签: objective-c xcode ipad view navigationbar


    【解决方案1】:

    您可以通过setViewControllers:animated: 使用初始导航堆栈设置UINavigationController

    // in application:didFinishLaunchingWithOptions:
    
    self.navigationController = [[UINavigationController new] autorelease];
    
    UIViewController *first = [[MyFirstViewController new] autorelease];
    UIViewController *second = [[MySecondViewController new] autorelease];
    NSArray *controllers = [NSArray arrayWithObjects:first, second, nil];
    
    [navigationController setViewControllers:controllers animated:NO];
    
    ...
    [window addSubview:navigationController.view];
    

    【讨论】:

    • 我应该在哪里写这个方法?在我的第一堂课中,我有(第一个视图)一个 IBAction:MoveToNextView,我在其中调用我的第二个视图,而在我的第二个视图中,同样的事情。我也有 APPdelegate [window addSubview: navController.view];那我该怎么办?
    • 我必须在哪里声明 MyFirstViewController 和 MySecondViewController?它说“使用未声明的标识符 MyFirstViewController”以及第二个
    • 没关系,我把“FirstViewController.h”和“SecondViewController.h”的导入弄错了,现在我的应用程序在第二个视图中启动但是有一个问题:返回按钮在第一个视图中返回没有第一个视图标题,但它的名称是“返回”...当我进入第一个视图时,我无法进入第二个视图,因为没有按钮可以进入第二个视图...我该如何解决这个问题?
    【解决方案2】:

    在启动时使用堆栈中已有的 2 个控制器以编程方式初始化您的导航控制器:

    FirstViewController *first = ...//create controller
    SecondViewController *second = ...//create controller
    
    [navigationController setViewControllers:[NSArray arrayWithObjects:first, second, nil]
                                    animated:NO];
    

    或者,您也可以让您的第一个控制器在启动时推送第二个控制器 - 有关该技术,请参阅 Apple 的 DrillDownSave 示例。

    【讨论】:

    • 没关系,我把“FirstViewController.h”和“SecondViewController.h”的导入弄错了,现在我的应用程序在第二个视图中启动但是有一个问题:返回按钮在第一个视图中返回没有第一个视图标题,但它的名称是“返回”...当我进入第一个视图时,我无法进入第二个视图,因为没有按钮可以进入第二个视图...我该如何解决这个问题?
    【解决方案3】:

    按照以下步骤操作:

    1.打开资源文件夹或包中的MainWindow.xib

    2.单击工具并打开Inspector >> 选择attribute >> NIB Name-在此处从下拉列表中设置您的视图名称>> identity 在检查器中(从上部选项卡)>> 选择@ 987654326@ - 从下拉列表中再次设置您的视图名称。

    3.打开appdelegate.m文件 在此处将视图控制器更改为:fileviewcontrollername *viewController; 设置它的属性。

    4.in didFinishLaunching in appdelegate.m 添加

    UINavigationController *navController=[[UINavigationController alloc]initWithRootViewController:viewController];[window insertSubview:navController.view];[self.window makeKeyAndVisible];return YES;
    

    5.在appdelegate.h文件中添加

    @class viewControllername;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多