iOS 13 带有为 presentModally 呈现的工作表,创建了一个似乎不一致的更改,即使与 Apple 早期的示例应用程序也是如此。我看过 WWDC 的 iOS 13 现代化 UI: https ://developer.apple.com/videos/play/wwdc2019/224/ 阅读信息丰富的博客文章,例如: https ://medium.com/@hacknicity/view-controller -presentation-changes-in-ios-13-ac8c901ebc4e 但还没有看到关于适当应用程序行为的全面讨论(此外,我使用的是 UIKit,而不是 SwiftUI)。
示例:旧的 Apple FoodTracker 学习示例(仍然在线,但尚未升级到 Swift 3),从 Table View Cell 点击选择数据将通过“显示”segue 导航到详细视图控制器,并实现“取消”/“保存”栏按钮项目用于直接更改,而不是“< 返回”和“编辑”选项,这些选项将通过额外的步骤转换编辑。使用 Table View 上方的“+”按钮添加数据,通过 Navigation Controller 使用 present 模态方式将数据添加到 View Controller。相同的“取消”“保存”选项。下面显示了 iOS 13 中的实现:
在 iOS 13 中查看 Apple 的 iPhone UI,似乎在大多数(所有?)应用程序中,用户从未从选择表视图中的数据到立即在另一个视图控制器上进行编辑。相反,用户需要采取额外的步骤并选择“编辑”按钮。以下是示例,首先来自提醒:
值得注意的是,要查看一个项目的详细信息,您必须首先选择该项目,然后它会转换到中间屏幕,提供一个新的“i”信息圈,单击该信息圈可以查看所选项目的详细信息。还值得注意的是,虽然 iOS 13 中的拉动关闭确实向用户显示了“放弃/取消”工作表警报,但并未向用户提供“取消”栏按钮的选项。
Apple 的联系人应用程序(如下)始终将查看联系人与编辑现有联系人分开。当为现有联系人单击“编辑”时,视图控制器通过淡入淡出转换并显示新的视图控制器,而不是在新的默认“工作表”视图中从底部向上呈现模式样式,这在创建时发生一个新的联系人。虽然 Apple 表示可以将全屏用于“受益于全屏演示的复杂任务”,但此处不使用新的默认“表格”视图是否合理?从查看联系人到编辑联系人的过渡似乎确实显示了一个带有更改的演示文稿的新视图控制器。Apple 指南建议模态演示文稿(现在应该默认为 iOS13 中的“表格”样式),其中上下文为“ https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/modality/
在像 Food Tracker 这样的简单应用程序或我的学生正在开发的示例待办事项应用程序(下)中,推荐的 UI 行为是什么?应该使用“显示”转场从表视图转换中选择一个待办事项,其中详细视图控制器显示“取消”和“保存”的栏按钮项目(左起第二个屏幕,下方),还是应该保留“<返回”并添加一个“编辑”(左起第三个屏幕)。如果是这样,UI 是否应该以编程方式将“< Back”和“Edit”替换为“Cancel”和“Save”?这样做时是否应该使用任何其他适当的 UI 动画(Apple 的联系人应用程序似乎从查看现有联系人转换为在“编辑”时略有不同的编辑视图控制器 在现有联系人上按下按钮 - 它的动画提供淡入淡出来标记过渡)。FWIW,我注意到 Apple 较旧的“应用程序开发”示例的待办事项列表使用带有“取消”和“保存”按钮选项的单个视图控制器,而不是两步显示数据,然后编辑,它使用我在上面引用的应用程序。
感谢您帮助我了解最佳实践,以便我可以与我的学生分享!