【问题标题】:Switching between different views using only MainWindow.xib仅使用 MainWindow.xib 在不同视图之间切换
【发布时间】:2011-02-28 17:26:50
【问题描述】:

大家好, 抱歉,如果我是此 xcode 界面构建器的新手,但我需要一些帮助,了解如何仅使用 MainWindow.xib 而不是创建更多 .xib 文件在不同视图之间切换。基本上,我有一个带有 3 个标签栏项目的标签栏控制器,在我的第三个标签栏项目上,我有一个包含 UIImageView 和几个按钮的 UIView。现在我希望这些按钮打开一个新视图,例如,我的一个按钮,我希望它打开一个导航控制器,其中包含我的移动博客,并且使用后退按钮,我想返回我的第三个标签栏项目视图。

我一直在 Google 和 YouTube 上搜索此类帮助,但他们一直在说创建另一个 .xib 视图控制器文件,但甚至没有人谈论仅使用 MainWindow.xib 创建不同的视图。我希望你们能帮助我解决这种情况,并逐步向我解释如何做到这一点,谢谢

【问题讨论】:

  • 他们不推荐这样做的原因是 MainWindow.xib 在启动时被加载。里面的“东西”越多,你的应用加载的时间就越长!只是好奇您为什么希望您的用户经历这些?
  • 好吧,如果唯一更简单的方法是使用另一个 xib,那么我可以接受,也许你知道如何帮助我解决这个问题,而不是只在 MainWindow.xib 中制作它?

标签: iphone objective-c xcode uiview


【解决方案1】:

解决此问题的常用方法是:

通过子类化UINavgationController 创建一个导航视图控制器来管理您希望在按下按钮时出现的视图:

// BlogNavigationController.h

@interface BlogNavigationController : UINavigationController {}
@end

// BlogNavigationController.m
@implementation BlogNavigationController

- (void)viewDidLoad {
  //manipulate views here
}

@end

在主视图控制器中的按钮按下操作中,您希望将此导航控制器推送到当前堆栈或呈现模态视图控制器:

// In Button pressed action
BlogNavigationController *blogVC = [[BlogNavigationController alloc] init];
[self.navigationController pushViewController:blogVC animated:YES];

// In Button pressed action
BlogNavigationController *blogVC = [[BlogNavigationController alloc] init];
[self presentModalViewController:controller animated:YES];

我不确定您为什么如此不愿意创建 nib 文件 - IB 实际上只是帮助您构建视图的一种方式。是在 IB 中执行此操作还是以编程方式执行此操作取决于您。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2015-09-23
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多