iPhone 应用程序开发 - 从视图控制器加载视图

2024-01-14

我有一个调查问卷视图控制器类。这会实例化几个问题视图控制器(每个问题视图控制器都有一个关联的视图)。

我如何获取调查问卷来加载与其问题视图控制器关联的这些问题视图......

EDIT:

-(void) setQuestions{
    for (NSDictionary *q in self.questions) {       
        /* Create our Question object and populate it */
        QuestionViewController *question = [[QuestionViewController alloc]init];        
        [question setQuestionId:[q objectForKey:@"questionId"] withTitle:[q objectForKey:@"question"] number:[q objectForKey:@"questionNumber"] section:[q objectForKey:@"sectionId"]];
        /* Add it to our question (mutable) array */
        [questionArray addObject:question];
        [question release];
    }
}

上述方法在 QuestionnaireViewController 的 viewDidLoad 方法中调用,并且是创建 QuestionViewController 的地方。每个视图都有一个带有下一个按钮的关联视图。


从您的问题来看,当您说“如何获取调查问卷来加载这些问题视图”时,您的意思并不清楚。

您只是问如何在选择问题时显示 QuestionViewController 吗?如果是这样,这听起来像是一个基于导航的应用程序。您通常会使用 UINavigationController 作为应用程序委托中的顶级视图控制器,将 QuestionaireViewController 设置为 UINavigationController 的 rootViewController。然后,当用户在 QuestionaireViewController 中选择一个问题时,您可以使用以下方法显示其控制器:

[self.navigationController pushViewController:questionViewController animated:YES];

相反,如果您问如何将这些 QuestionViewController 的视图显示为 QuestionaireViewController 的子视图,简短的回答是不要这样做(至少在 iOS 4.x 下不这样做)。 Apple 的视图控制器框架不支持使用嵌套视图控制器同时管理多个子视图。文档指出,每个视图控制器应对应 iPhone 上的一个全屏视图。 iPad 对分割视图和弹出窗口等内容稍微更改了这些规则,但它仍然不适合让您在自己的自定义视图控制器中嵌套视图控制器。

(事实上​​,从技术上讲,使用多个视图控制器来管理单个屏幕上的不同子视图是可行的,但是正确地这样做需要了解视图控制器框架的设计方式的专业知识,以便您可以正确地委托所有各种 UIViewController 方法和属性,例如viewWillAppear:、navigationController、tabBarController 等。通常最好遵循 Apple 的建议并在每个屏幕上使用一个视图控制器。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 应用程序开发 - 从视图控制器加载视图 的相关文章

  • ViewWillAppear 没有被 UISplitViewController 调用

    背景和目标 我有一个基于 UISplitViewController 的 iPad 应用程序 到目前为止它支持 4 个方向 但现在我想将其锁定为仅横向 我变了shouldAutorotateToInterfaceOrientation左视图
  • 为什么使用[ClassName alloc]而不是[[self class] alloc]?

    我正在读马克 达尔林普尔 Mark Dalrymple 的著作在 Mac 上学习 Objective C 仅在协议章节 所以仍然相对较新 并试图弄清楚一些事情 为什么要通过类自己的名称来引用它 如果我有一个叫做Foo 为什么我会想写 比如说
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • iPhone 崩溃日志?

    我已经配置了一部 iPhone 并让用户安装了该应用程序 它失败 是否有崩溃日志可以让我看到 iPhone 上失败的原因 Ian 如果您可以使用 xcode 将 iPhone 连接到计算机 则在管理器窗口中它会显示每个应用程序崩溃的崩溃日志
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 下载Xcode? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚升级到 OS X Mavericks 我很高兴能够使用所有新的 Mavericks 技术 我只有
  • 使用 Google place API 从 lat long 获取附近的地点

    我正在使用 google place API 即 https maps googleapis com maps api place search json location 33 7167 73 0667 radius 500 type f
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 如何处理 Xcode“嵌入应用程序扩展”构建阶段

    通过添加新目标创建 共享扩展 时 Xcode 在应用程序目标设置的应用程序 构建阶段 选项卡中添加名为 嵌入应用程序扩展 的构建阶段 可以删除此阶段 但如果您尝试通过按左上角的 来添加它 您会发现可用选项中未列出 嵌入应用程序扩展 为什么会
  • 使用 Storyboard 时获取 NSManagedObjectContext

    目标是获取当前的 NSManagedObjectContext 以便使用 Core Data 在 iOS 4 3 中 我将 UINavigationController 的委托设置为 AppDelegate 如下所示 在 AppDelega
  • xcode 6.1 (Swift) 中的 SIGABRT 运行时错误

    与最初的代码相比 唯一的更改是在ViewControl swift override func viewDidLoad newMessage hidden true super viewDidLoad Do any additional s
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • XCode 4.2.1 在 Lion 10.7.2 上启动时崩溃

    这周我买了大约 10 年来的第一台 Mac 是的 这是一台二手 Mac Pro 2x2GHz 双核 Xeon 2GB RAM 它全新安装了 Mac OS X Lion 10 7 2 我只安装了 OmniOutlner Pro Textmat
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您

随机推荐