用于具有转换的非导航应用程序的视图控制器/NIB 架构?

2024-05-16

我正在修补一个 iPad 应用程序(就像许多 iPad 应用程序一样),它不使用 UINavigation 根视图控制系统,因此我没有每个应用程序“视图”的自然所有权。我基本上有两个基本视图:文档列表视图和文档编辑视图。

我正在使用 UIView 动画来从选定的文档转到编辑视图。

我的顶部还有一个工具栏,它存在于两个“视图”中(带有不同的按钮)。

因为我没有 UINavigation 为我运行节目,所以我倾向于将越来越多的东西放入一个 NIB 和一个拥有整个容器的视图控制器中。但现在我试图弄清楚如何从文档列表视图切换到编辑视图(如果编辑视图位于不同的 NIB 内),同时也保留工具栏。

有人对这样的应用程序结构有想法或经验吗?我发现文档缺乏围绕代码/UI 结构的最佳实践,除了琐碎的单屏应用程序或完整的导航应用程序之外。

根据文档,您“不应该”让父/子视图控制器拥有同一“屏幕”的子组件,但这意味着一个巨大的视图控制器基本上包含整个应用程序,这是不对的。

不确定是否有“正确答案”;我正在寻找一些明智的例子或建议。几个月来没有人触及这个问题,因此我添加了赏金以产生良好的讨论。 :)

Thanks!

UPDATE:我不是在谈论分割视图,分割视图控制器显然可以很好地处理分割视图。相反,看看 Apple 的 iWork 应用程序(例如 Pages),它具有文档列表视图和独立的编辑视图,但这些视图通过动画相关联。

也许这里真正的问题是:您将如何(或者您甚至可以?)自己构建一个“容器”视图控制器,例如分割视图或导航控制器?你需要从头开始构建整个该死的东西吗?我感觉你是这样的,因为视图控制器之间的交互中似乎隐藏着连线。如果是这样,对此有何想法?


我认为视图控制器中唯一隐藏的接线是设置parentViewController,这是支持为分割和导航声明的类别所必需的。

视图控制器被设计为嵌套的,每个控制器都拥有视图层次结构的一部分。唯一的设计目标是没有视图控制器进入另一个控制器的视图层次结构。父视图控制器通常会调用添加子控制器,以便它可以在其拥有的视图层次结构中设置视图的框架。子视图控制器不应该对其控制的视图的超级视图执行任何操作,因为该视图由另一个控制器拥有。它不应该设置它控制的视图的中心或框架。

例如,导航控制器有一个push方法,它删除以前的控制器视图,添加新的控制器视图,并设置新添加的视图的框架。一般来说,父视图控制器可以自由设置子控制器视图的框架,但不能设置边界。

如果您想更改导航控制器的动画,我认为您应该首先使用animated: 参数实现每个方法。设置动画,然后在提交动画之前调用 super 并关闭动画标志。

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

用于具有转换的非导航应用程序的视图控制器/NIB 架构? 的相关文章

  • 在 iOS 上保存(私人)应用程序设置?

    我知道NSUserDefaults用于保存 恢复user优先 什么是等效类应用 例如 应用程序可能有一个 上次运行 字段 或者它可能有一个用于在应用程序级别使用的设备的唯一标识的字段 我的目的是将应用程序的设置 而不是用户的设置 保留在设置
  • 在 iPhone 应用程序中获取路线和路线导航

    我正在开发一款应用程序 该应用程序将重点关注在驾驶时为用户提供路线和逐段指示 他们在驾驶过程中留在应用程序中非常重要 因此我真的不想让他们离开应用程序并转到内置的地图应用程序 我最近对如何包含此功能进行了大量研究 众所周知 这并不容易 因为
  • iOS Facebook SDK - 远程定义 FacebookAppID

    使用iOS Facebook SDK 3 0 需要在应用程序的info plist中定义FacebookAppID和相关的URL Scheme 我想远程定义这些 向我自己的服务器请求应用程序 ID 所以有两个不同的问题 我可以在运行时更改应
  • JavaFX 中的 MVC 模式与场景生成器

    我是 JavaFX 新手 根据我当前的设置 正在努力创建合适的 MVC 架构 我使用 Scene Builder 单击了一个 UI 并指定了一个 Controller 类 Startup public class Portal extend
  • 以点值检测 iPhone 6/6+ 屏幕尺寸

    鉴于新发布的 iPhone 6屏幕尺寸 http www apple com iphone compare iPhone 6 1334h 750w 2x in points 667h 375w iPhone 6 1920 1080 3x i
  • 如何从装有 iOS 5 的新 iPhone(供个人使用)获取历史位置数据?

    过去 从 iPhone 上名为solidified db 的文件中获取历史位置数据很容易 例如 请参阅http petewarden github com iPhoneTracker http petewarden github com i
  • 特别分发:应用程序安装失败

    我已经为我尝试分发的应用程序创建了一个临时存档和一个 ipa 文件 我还创建了一个分发配置文件 其中包含我计划将应用程序分发到的设备的 UDID 当我将 ipa 和 mobileprovision 文件拖到 iTunes 中并尝试将应用程序
  • 在 iPhone 上搜索 PDF

    经过两天尝试使用 Quartz 从 PDF 中读取注释后 我成功做到了并且发布我的代码 https stackoverflow com questions 4080373 get pdf hyperlinks on ios with qua
  • 如何在 iPhone sdk 上访问年龄限制家长控制

    有没有办法以编程方式访问 iPhone iPad iPod 上家长控制中设置的年龄限制 如果年龄限制太低 我想禁止使用某些功能 我一直在四处寻找 但也许我没有使用正确的搜索词或其他东西 任何帮助表示赞赏 也许这样行不通 thanks 从 3
  • TestFlight Beta 中的消息不可用

    I am seeing Unavailable message in TestFLight Beta App in iOS8 Please find the attached screenshot please tell me how to
  • iOS 低内存崩溃,但内存使用率非常低

    这已经困扰我很长时间了 我的应用程序运行占用大约 2 74MB 内存 没关系 但当它创建 UIWebView 时 它会增加到大约 5 87MB 并继续崩溃 这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值 我找不到崩溃日志
  • iOS 5 UIView drawRect 覆盖在设备上不起作用

    我正在准备在 iOS 5 GM 上发布我的 iPhone 应用程序 并遇到了 UIView 的错误 当我在子类上重写 drawRect 方法时 模拟器会显示所需的结果 但当我尝试在实际设备上测试时 drawRect 重写根本没有任何效果 我
  • Xcode - 发布和分发配置中的 Malloc_Error

    仅当我在设备上选择发布或分发配置时 我才会收到此错误 在模拟器上它运行良好 请问 我错在哪里 cc1obj 4113 malloc mmap size 429379584 failed error code 12 error can t a
  • 从设备获取联系人列表时出现问题

    这段代码有什么问题 NSMutableArray contactArray NSMutableArray alloc init ABAddressBookRef addressBook ABAddressBookCreate CFArray
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • iPhone Dev:从子控制器和 TabBar 中的另一个控制器重新加载表视图的数据

    我正在实现一个笔记管理器应用程序 它在 tabBar 中有一个 tableView 其中显示其笔记的主要信息 访问一个注释时 您可以编辑其属性 在 tabBar 的一个按钮中 您可以选择注释在 tableView 中的显示方式 我遇到的问题
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • 刷新单元格的 UITableView 队列

    我想知道如果调用 UITableView reloadData 时 UITableView 队列被刷新 是否有人可以回复我 我正在尝试这样做 但这对我没有帮助 有什么建议吗 如果你查看 UITableView 的头文件 你可以看到有一个名为
  • 带有自定义字体的 UILabel 错误呈现

    在我的 iPhone 应用程序中 我为所有 UILabel 设置了自定义字体 更准确地说 我对 UILabel 进行了子类化 重写了一个方法 在该方法中设置了自定义字体 然后将 IB 中的所有标签设置为该自定义类 现在的问题是 所有文本都渲

随机推荐