假设我有一个具有固定布局的应用:一个按钮和几个标签。在整个应用程序中不使用多个视图控制器是有道理的,因为我有相同的按钮和标签。我不想复制和粘贴它们,因为它们的外观和样式永远不会改变。如果我决定稍后改变它们的外观,我将不得不浏览每个视图控制器,这是一个不好的做法(就像复制和粘贴代码一样)。
尽管如此,我希望能够让用户返回并转发应用程序的“布局”,但此代码不允许我这样做:
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
enterFirstLayout()
}
func enterFirstLayout() {
// do things such as change labels' text property
exitFirstLayout()
}
func exitFirstLayout() {
// do things
enterSecondLayout()
}
func enterSecondLayout() {
// ...
}
}
如何避免创建多个视图控制器并让用户跳过并返回到应用的特定布局?
答案 0 :(得分:2)
我假设您正在尝试实现类似向导的功能,您可以返回并通过屏幕前言。
在这种情况下,我会使用DateFormat dateFormat1 = new SimpleDateFormat("yyyy/mm/DD HH:MM:SS");
Date dateNow1 = new Date();
System.out.println("Date format: " + dateFormat1.format(dateNow1));
和UICollectionView
。构建一个自定义单元格,代表您的单个屏幕'布局比构建一个简单的数据源作为自定义对象的数组。数据源应包含所有标签的内容作为UICollectionViewFlowLayout
变量。
漂亮而优雅的代码。
您可以免费滚动动画和滑动手势检测。如果您愿意,可以添加自定义花式动画。
这是我的解决方案。回到你的问题,如果你想按照自己的方式做到这一点,你可以使用子类化。构建基本视图控制器类,配置所有布局并将标签公开为公共,只读变量,然后从此类继承。请记住,子类化是最紧密的耦合。
其他选项是构建此视图控制器一次并重复使用不同的数据集。
所以决定是你的。我会按照1,3,2顺序进行:)