【问题标题】:adding navigation effect to view based application?向基于视图的应用程序添加导航效果?
【发布时间】:2010-07-01 07:31:27
【问题描述】:

我已经创建了基于视图的应用程序,在这里我需要在按下按钮时在视图之间导航。 所以在第一个视图控制器中,我为按下按钮创建了动作。

-(IBAction)loadSecondView:(id)sender
{
    SecondView *sView = [[SecondView alloc]initWithNibName:@"SecondView" bundle:nil];
    [self.navigationController pushViewController:sView animated:YES];
    [sView release];
}

此代码不起作用,我缺少任何东西,

我可以通过[self.view addSubview:sView]; 做到这一点,但我需要导航效果。 提前致谢。

【问题讨论】:

    标签: iphone objective-c uiview navigationcontroller


    【解决方案1】:

    您不能只将 UIView 实例连接到导航控制器,它们不是这样工作的。

    查看 Xcode 中的“基于导航的应用程序”模板,了解导航控制器的工作原理。

    您可以在隐藏导航栏的同时使用视图控制器:

    [[self navigationController] setNavigationBarHidden:YES animated:NO];
    

    然后您可以将 UIButton 实例映射到推送或弹出视图控制器的选择器,同时保持导航栏隐藏。

    这些按钮实例是视图控制器的view 属性的子视图。

    隐藏导航栏有助于提供您没有使用导航控制器的错觉,同时为您提供导航控制器的所有功能。

    【讨论】:

    • 感谢我一直在寻找这种技术的确认。
    【解决方案2】:

    Alex 是对的,如果您只创建一个“基于视图的应用程序”项目,则不会创建 UINavigationController,因此当您在其上推送某些内容时,没有任何反应,这很正常。

    你必须创建一个 UINavigationController 并让你主视图它的 rootViewController,然后你可以在它上面推送一个新的 viewController。

    【讨论】:

      【解决方案3】:

      我有办法解决这个问题,

      在基于视图的应用程序中,appdelegate 文件为视图控制器创建对象并将该视图添加到主窗口,为了完成我们的任务,删除 mainwindow.xib 中的控制器并添加 UINavigation 控制器,并为其创建一个对象,然后将插座连接到它,然后将此导航控制器视图添加为子视图,

      它工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 2012-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多