我正在制作一个标签栏应用程序,我不仅想要底部的自定义栏,还想要在用户处于纵向或横向模式时更改按钮的功能.
例如,用户垂直握住iphone = 3个标签(a,b,c),但是用户侧翻电话,标签栏现在填充了2个标签(d,e),这些标签在向上/向下对齐屏幕的左侧,以便用户可以阅读它们.
我已经研究了UITabBarController类的子类化,但感觉就像我想要的那样是不可能的.我想知道...
1)我怎样才能做到这一点?
2)在将应用程序推送到App Store时,我自己的标签栏会出现问题吗?
我正在尝试实现基于MVVM的单页面应用程序,目前正在使用框架Knockout.js来处理MVVM的viewmodel/view部分.我很困惑,因为我所看到的实现Knockout的每个例子都涉及将整个视图模型保存到数据库中.这些示例是否缺少"模型"步骤,其中视图模型与数据层模型同步,模型执行验证/服务器同步.
我想在单个页面上有多个不同的模板/视图,每个模板/视图都有不同的视图模型.我发现的另一件事是缺少knockout.js正在跨不同视图同步单个模型(而不是viewmodel).我认为每个视图共享一个巨型视图模型是不合理的,所以我认为每个视图都有自己的视图模型,但每个视图模型都会与几个应用程序范围的模型的字段同步.每个视图.
我正在处理的页面获取了一个巨大的模型(30多个字段,多层父/子关系),我认为让我的所有视图模型与此模型同步是有意义的.我调查了Knockback.js(结合了knockout.js和backbone.js)但是我最终重写了大部分函数,比如fetch,set,save,因为页面是从API获取数据的(我可以不只是与服务器来回同步整个模型,所以我决定反对它.
我的应用程序的可视示例:
(模型层)M | 中号
(viewmodel/view layer)VM-V | VM-V | VM-V | VM-V
另一个例子
一个示例模型是User = {firstName:"first",lastName:"last",...}
一个viewmodel只需要名字,另一个viewmodel只需要姓氏
ViewModelA = {firstName:app.User.firstName()}
ViewModelB = {firstName:app.User.lastName()}
唯一的方法是为Model和Viewmodel更改定义pub/sub系统吗?这甚至是好的/可维护的架构吗?我在这里错过了一个基本概念吗?欢迎所有建议.