1. 屏幕
2. 创建单一视图项目,底下选中iPad(也可以在项目里面改)
3. 创建左右控制器
分割视图:
// 左边是分组的tableView
放倒屏幕 command + 方向
代码:
1. 创建split
2. 左右,左右一般会用导航控制器来控制.
// 3. 设置根视图控制器
self.window.rootViewController = split;
横状态屏才可以看到,左右的分割视图效果.
4. 下面把导航控制器,套在导航控制器里.
// 今天的效果,左侧是书签,右侧是浏览器.
左右控制器是平行了,不是正向传值和反向传值.
a 和 b 同时存在, 左边点击,右边显示.
5. 弄一个字典NSDictionary *bookMarks;
// 注意别忘了前缀,否则加载不出来的!
6. 有多少个键值对,就有多少行.
7. cell的内容需要通过key值取.
8. 实例化webView
右边webView , 是scrollView .
9. 默认给它一个url
loadRequest方法, 需要一个NSURLRequest对象, 则就需要一个url
10. 通知中心
一定只能从userInfo里面取信息, 不要从Object是发送对象,表示只接受它发来的,其他人的都不接受.
11. 记得析构函数,移除通知.
// 删除所有 removeObserver:self
// 或移除指定的 name: @“newURL” object: nil
1. 默认情况下,竖屏不显示左边控制器.
下面处理竖屏的时候,也显示左边的tableView.
split的代理:
// 注: UISplitViewController的实例化和代理方法,都在AppDelegate中写.
// 控制竖屏的时候,是否显示左边的控制器.
或者用系统的宏,效果是一样的:
效果如下:
2. 倒屏的效果,有点丑:
// 现在要做的是,autoResizing,让其上下左右贴近父视图.
// 兄弟视图是autoLayout
// 下图是倒过来的样子(即Home键在最顶上)
代码:
webView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
注意:
||(短路或)和 |(或)都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。// | 和 || 区别
修改后:
3. 现在想要的效果,拉伸后也要看到左边的标签.
-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc{
barButtonItem.title = @"显示";
right.navigationItem.leftBarButtonItem = barButtonItem;
}
效果: 1) // “显示”按钮 , 点击会显示左侧按钮
2) 弹出菜单 // 记住设代理
// 点击”显示”弹出来,点击其他任何地方,收起.
系统已经帮我们把这些功能都实现好了.