【问题标题】:iPhone Obj C - 2nd XIB How to configure a Nav Controller and View ControlleriPhone Obj C - 2nd XIB 如何配置导航控制器和视图控制器
【发布时间】:2011-08-22 21:35:18
【问题描述】:

还在慢慢学习 Obj-C...原谅愚蠢的问题...

在我的第一个 XIB 上,我有 App Delegate、Nav Controller 和几个视图控制器。除此之外,我还有几个按钮可以调用第二个或第三个或后续的 XIB。

随后的 XIBS 都有显示视图的按钮。

所以在第 2 次 + XIB 中,我已在 .h 中将其配置为 UIViewController,但是我猜我需要将其设置为其他东西,例如主 .h 是 AppDelgate。

所以现在 XIB 想要视图集,但我不希望它进入视图,我希望它进入视图控制器......我想??

也许我仍然认为这一切都错了。我需要主菜单来调用下一个菜单(第二个 XIB),然后调用各种视图。在我的 Java Android 应用程序中,我有大约 70 个类,猜测大约有 45 个视图,所以我再次猜测我确实需要多个 XIBS。

所以问题是如何设置额外的 XIB?他们是 AppDelegate 还是什么?

这会改变我调用 2nd XIB 的方式吗?

【问题讨论】:

    标签: iphone objective-c view xib


    【解决方案1】:

    XIB 或 UIView(或其子类)只是面部组成。

    对于实际编程部分,您直接在这些视图的“控制器”类之间进行处理。

    您制作的视图控制器可以附加一个 XIB。但是视图显示或隐藏的方式和时间的行为都是由视图控制器自己处理的。

    所以说到重点,如果你想在你的应用顶部有一个导航栏(假设它是一个简单的应用,想用导航栏显示许多视图):

    在应用程序委托中的 applicationDidFinishLaunching: 方法中创建 UINavigationController 实例:

    // Assuming that mainViewController is the first controller + view for your app.
    navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
    [window addSubview:navigationController.view];
    

    这会自动为您的视图添加一个导航栏。您无需在 XIB 或其他任何地方手动添加它们。现在,如何绘制/实现 mainViewController 取决于您。


    当你想在 mainViewController 中显示另一个视图时,你应该调用:

    AnotherViewController *anotherViewController = [[[AnotherViewController alloc] init] autorelease];
    [self.navigationController pushViewController:anotherViewController animated:YES];
    

    这会将您的新视图(来自另一个ViewController 实例)“推送”到您的导航结构中,这将自动在顶部添加一个后退按钮。


    希望这有助于稍微了解它的工作原理。

    如果您有疑问,请发表评论。祝你有美好的一天!

    【讨论】:

    • 子菜单怎么办?这听起来像我现在在主菜单上的内容,但我认为每个子菜单也需要一个导航控制器? .h 文件中子菜单的类是什么?
    • 子菜单是指可以点击并打开新视图的选项表?这可以通过实现 UITableView 来完成。并检测何时点击/选择特定单元格,初始化相应的视图控制器并执行另一个 pushViewController。不,您不需要创建多个 UINavigationController。只需一个就足以处理特定的层次结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多