【发布时间】:2023-03-13 17:37:01
【问题描述】:
我经常需要一个不填满整个屏幕的自定义模式对话框,例如 iOS SDK 附带的操作表。这个对话框必须处理一些棘手的场景和条件,例如界面旋转,并且还经常携带大量代码来处理用户选择。因此,将对话框构建为常规视图+控制器组合并使其像 UI 中的一等公民一样工作似乎是非常可取的。
系统模态控制器 API (presentModalViewController:animated:) 在这方面非常有限,例如它坚持将控制器隐藏在模态控制器下,并迫使您使用预定义的动画而几乎没有控制器。
控制器包含 API 看起来很有前途,因为它允许同时在屏幕上显示多个视图,每个视图由不同的控制器管理。 (这正是常规视图控制器顶部的模态对话框的情况。)但是与标准容器控制器(如UINavigationController)的相互作用是不稳定的,as I have found out。
有没有人有一种可行的技术可以将非全屏模式对话框保留为常规视图控制器,并让它们与 UI 的其余部分很好地配合?
【问题讨论】:
标签: objective-c ios cocoa-touch