我正在实现自定义TabBarViewController
,除了设计之外应该具有相同的行为。
我在一个数组中管理我的subViewControllers
,使用延迟加载来初始化视图,如“开始Iphone开发”第6章所述,我通过填充我的数组中的NSNull
个对象作为标签I拥有并在需要时用新近初始化的viewControllers
替换它们。
通过这种方式,我可以跟踪正确的视图顺序,并将它们与正确的选项卡相关联(数组中的第一个位置保留给第一个视图等)。
切换视图时,将使用[currentViewController.view removeFromSuperview];
删除当前视图,并使用[self.view addSubview:newViewController.view];
添加新视图。现在以前的视图保留在数组中以供将来使用。
旋转设备时会遇到困难,因为(我认为)我的数组中viewControllers
当时未添加到超级视图addSubview
的{{1}}没有被旋转,这种情况有哪些感觉,我想。
结果是旋转后,例如对于横向模式,用户切换到他之前已经存在的视图,这是因为已经初始化的视图,视图仍然以纵向模式呈现给他。
我的问题是:
1)我是否必须手动轮换未添加的子视图,如果是这样,这怎么做最简单?
2)正常TabBarController
如何管理其控制器,换句话说,我做得对吗?
答案 0 :(得分:0)
为什么不尝试更改用户所在的当前模式(Potrait或横向)的视图控制器视图属性的框架
所以在shouldAutoRotateToInterfaceOrientation中只需更改 yourviewcontroller.view.frame = CGRectMake(x,y,width,height),也许你会有你的旋转视图!!
我希望它有所帮助