小编PLJ*_*JNS的帖子

在纵向中使用UITabBarViewController,但在通用应用程序中使用UISplitViewController

我希望在iPhone上使用UITabBarViewController时可以使用UITabBarViewController,而在iPhone 6/6 +上可以使用UISplitViewController,无论是横向还是iPad.在iPad或iPhone 6/6 +横向上时,标签栏项目在最顶层的视图控制器中显示为UITableViewCells.

我真的希望调用对象不必担心设备或方向,而是作为输入传递iPhone上的标签栏中的视图控制器,以及iPad和iPhone 6/6 +上的根视图控制器在景观中.

这是我的意思的直观表示:

UISplitViewController /的UITabBarController

我认为可以使用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

5
推荐指数
1
解决办法
1521
查看次数

如何避免扩展NSArray并在Java中思考,同时制作漂亮的代码

我要做两件被认为是坏风格的东西,但我有理由,而且我对Cocoa解决方案持开放态度,我只是不知道它是什么.

我想要一个NSArray对a类型安全的类型UIView,然后NSArrayUIViews的数组安全类型.一个2D数组UIViews.

我喜欢这个,因为我已经实现了一个自定义double UITableView,它在垂直表视图中有一个嵌套的水平表视图.我会使用我的自定义ViewsArrayViews2DArray数据结构,其他程序员很容易给我的内容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];

我知道这是几封信,但我正在努力编写好的代码.

我怎样才能回到selfinitWithViews和有NSArray我的添加的属性greatestHeight,totalWidth等等?(Casting?)我在考虑这个错误(使用Java /类型...)?对于像这样的数据结构,最好的解决方案是什么?

编辑:

为了以我认为"时尚"的方式解决我的问题,我做了以下事情:

这是我的标题(注意它是一个NSObject):

@interface ViewsArray : NSObject

@property int greatestHeight;
@property …
Run Code Online (Sandbox Code Playgroud)

iphone macos objective-c ipad ios

2
推荐指数
1
解决办法
93
查看次数