在iPhone应用中,使用导航控制器由上一层界面进入下一层界面。
但iPad屏幕较大,通常使用SplitViewController来实现导航(这个是iPad专用的视图控制器)。在横屏下,左侧显示一个导航列表,点击后右边显示对应的详情。竖屏情况下显示方式会有所不同,默认只显示详细面板,原来左侧的导航列表会通过浮动窗口隐藏,需要从边缘向内拖动来显示。
2,开发兼容的iOS应用
有时候需要开发兼容iPhone、iPod、iPad的应用,这时候需要判断设备类型,如果是iPhone、iPod就不应该使用SplitViewController。另外处理方式也会有变化,如点击列表项时,在iPad直接在右侧展示详情,而iPhone却需要导航到详细页。
3,样例效果图
iPhone:
iPad:(注:iPad要旋转成横屏,竖屏下一片空白)
--- AppDelegate.swift 应用入口 ---
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
import
UIKit
@UIApplicationMain
class
AppDelegate
:
UIResponder
,
UIApplicationDelegate
{
var
window:
UIWindow
?
func
application(application:
UIApplication
didFinishLaunchingWithOptions launchOptions: [
NSObject
:
AnyObject
]?) ->
Bool
{
self
.window =
(frame:
UIScreen
.mainScreen().bounds)
// Override point for customization after application launch.
.window!.backgroundColor =
UIColor
.whiteColor()
.window!.makeKeyAndVisible()
//初始化列表面板
let
master =
MasterViewController
()
//初始化详情面板
detail =
DetailViewController
()
master.detailViewController = detail
nav =
UINavigationController
(rootViewController: master)
.window!.rootViewController = nav
}
else
{
//初始化分割面板
split =
UISplitViewController
()
//设置分割面板的2个视图控制器
split.viewControllers = [nav,detail]
//分割面板作为window的主视图加载
.window!.rootViewController = split
}
return
true
}
applicationWillResignActive(application:
) {
}
applicationDidEnterBackground(application:
) {
}
applicationWillEnterForeground(application:
) {
}
@H_478_403@
applicationDidBecomeActive(application:
) {
}
applicationWillTerminate(application:
) {
}
}
|