習慣了不用xib文件,寫的是個純代碼的工程,所以模板選擇的“empty application”
1、建立好空工程後,導入MGSplitViewController的三個類
ARC工程別忘了添加-fno-objc-arc
2、AppDelegate的配置= =
(1).h文件
a) 添加一個屬性
@property (nonatomic, retain) MGSplitViewController *splitViewController;
(需要包含#import "MGSplitViewController.h")
(2).m文件
a) 需要包含最初顯示的rootViewController和首個detailViewController
b) - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//左邊管理界面
RootViewController* root = [[RootViewController alloc] init];
UINavigationController* rootNav = [[UINavigationController alloc] initWithRootViewController:root];
//右邊第一個詳情界面
firstDetailViewController* first = [[firstDetailViewController alloc] init];
UINavigationController* detailNav = [[UINavigationController alloc] initWithRootViewController:first];
self.splitViewController = [[MGSplitViewController alloc] init];
self.splitViewController.viewControllers = [NSArray arrayWithObjects:rootNav, detailNav, nil];
self.splitViewController.showsMasterInPortrait = YES;//豎屏時也顯示,顯示寬度需要設置MGSplitViewController的MG_DEFAULT_SPLIT_POSITION宏定義值
self.window.rootViewController = self.splitViewController;
return YES;
}
這裏簡單說明一下,splitViewController的viewControllers必須是兩個,分別表示的是左邊的管理頁面和右邊的詳情頁面,這個根據需要任意設置。後面點擊左邊的rootViewController變換右邊的detailViewController也是通過重新設置這一屬性實現的
這個時候運行,應該就可以看到初始時分屏的效果了
3、變換左後的頁面
(1)AppDelegate.h中添加三個方法
#pragma mark -- toolKits
-(void)swtichDetailViewController:(id)controller;//切換右邊詳情試圖
-(void)toggleMasterViewController;//切換rootViewController的顯示和隱藏
+(AppDelegate*)sharedDelegate;
(2)AppDelegate.m中實現
#pragma mark -- toolKits
-(void)swtichDetailViewController:(id)controller
{
//保留原有的rootViewController
id nav = [self.splitViewController.viewControllers objectAtIndex:0];
//新的detailViewController
UINavigationController* nav2 = [[UINavigationController alloc] initWithRootViewController:controller];
self.splitViewController.viewControllers = [NSArray arrayWithObjects:nav, nav2, nil];
}
-(void)toggleMasterViewController//切換rootViewController的顯示和隱藏
{
[self.splitViewController toggleMasterView:nil];
}
+(AppDelegate*)sharedDelegate
{
return (AppDelegate*)[[UIApplication sharedApplication] delegate];
}
在需要的地方調用[[AppDelegate sharedDelegate] swtichDetailViewController:secondDetailVC];就可以了