我希望在iPhone上使用UITabBarViewController时可以使用UITabBarViewController,而在iPhone 6/6 +上可以使用UISplitViewController,无论是横向还是iPad.在iPad或iPhone 6/6 +横向上时,标签栏项目在最顶层的视图控制器中显示为UITableViewCells.
我真的希望调用对象不必担心设备或方向,而是作为输入传递iPhone上的标签栏中的视图控制器,以及iPad和iPhone 6/6 +上的根视图控制器在景观中.
这是我的意思的直观表示:

我认为可以使用tab bar images属性将图像放置在表格视图单元格中.我在Swift中这样做,我认为这个策略可能是这样的:
class ResponsiveRootViewController: UIViewController {
var viewControllers: NSArray?
var responsiveTabBarController: UITabBarController?
var responsiveSplitViewController: UISplitViewController?
var responsiveRootViewController: UITableViewController?
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?这已经完成了吗?我应该改为实现一个标签栏视图控制器,它在横向上隐藏它的标签栏(这对我来说似乎超级hacky)?当方向更改时,如何将生成的根表视图控制器(我希望标签栏项存在的控制器)添加到视图层次结构中?
uitabbarcontroller uisplitviewcontroller ios ios-universal-app swift
我要做两件被认为是坏风格的东西,但我有理由,而且我对Cocoa解决方案持开放态度,我只是不知道它是什么.
我想要一个NSArray对a类型安全的类型UIView,然后NSArray对UIViews的数组安全类型.一个2D数组UIViews.
我喜欢这个,因为我已经实现了一个自定义double UITableView,它在垂直表视图中有一个嵌套的水平表视图.我会使用我的自定义ViewsArray和Views2DArray数据结构,其他程序员很容易给我的内容DoubleTableView.这是一个想扩展的充分理由NSArray吗?
我遇到的问题是我已经覆盖了该方法的功能:
(NSArray *) initWithObjects:(id) firstObject ... 如:
(ViewsArray *) initWithViews: (UIView *) firstView, ...
但是我的方法的返回值是a NSArray,它没有包含在我的其他方法中ViewsArray,这意味着无法识别的选定异常.我通过制作一个包含我的观点的NSArray属性暂时解决了这个问题ViewsArray,但是当我想将我的内容提供给我的时候,这会产生难看的代码DoubleTableView.
例如:
[[self.delegate content].arraysOfViews objectAtIndex:indexPath.section];
代替
[[self.delegate content] objectAtIndex:indexPath.section];
我知道这是几封信,但我正在努力编写好的代码.
我怎样才能回到self我initWithViews和有NSArray我的添加的属性greatestHeight,totalWidth等等?(Casting?)我在考虑这个错误(使用Java /类型...)?对于像这样的数据结构,最好的解决方案是什么?
编辑:
为了以我认为"时尚"的方式解决我的问题,我做了以下事情:
这是我的标题(注意它是一个NSObject):
@interface ViewsArray : NSObject
@property int greatestHeight;
@property …Run Code Online (Sandbox Code Playgroud)