layout: post
title: “UISplitViewController 使用”
—
UISplitViewController
相关文章记录:
***
在 iPhone 6+使用UISplitViewController 图文简单讲解
文章内容:
- 视频呈现效果
- displayModeButtonItem的作用
- collapseSecondaryViewController 代理方法的使用
`
func splitViewController(splitViewController: UISplitViewController, collapseSecondaryViewController secondaryViewController: UIViewController!, ontoPrimaryViewController primaryViewController: UIViewController!) -> Bool {
return collapseDetailViewController
}
`
UISplitViewController 官方说明文档文章内容:
关于UISplitViewController的用法、使用场景、展现模式、以及相关API
Change the Width of Master View in Split View Controller
文中有实例代码 WorldFacts
bugs
displayModeButtonItem
navigationItem.leftBarButtonItem=splitViewController.displayModeButtonItem不执行
伪代码 如下:(MyIntentionLibraryController 为 splitViewController 的DetailViewController)
@interface CJCollectionViewController : UICollectionViewController
@interface MyIntentionLibraryController :CJCollectionViewController
@implementation CJCollectionViewController
- (instancetype)init{
return [self initWithObject:nil];
}
- (instancetype)initWithObject:(id)object{
UICollectionViewFlowLayout* flowLayout = [[UICollectionViewFlowLayout alloc]init];
flowLayout.itemSize = CGSizeMake(50, 50);
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
self = [super initWithCollectionViewLayout:flowLayout];
if (self) {
self.object = object;
self.collectionView.backgroundColor = [UIColor whiteColor];
}
return self;
}
@end
@implementation MyIntentionLibraryController
-(void)viewDidLoad {
self.navigationItem.leftBarButtonItem =self.splitViewController.displayModeButtonItem;(不起作用、没有展现出displayModeButton)
}
问题解决过程:
刚开始不确定 splitViewController 是否支持在UICollectionViewController 设置displayModeButtonItem 于是做了一下尝试
- 更换继承关系
@interface MyIntentionLibraryController :UIViewController
设置displayModeButtonItem 有效 - 更换继承关系
@interface MyIntentionLibraryController : UICollectionViewController
设置displayModeButtonItem 有效
在 MyIntentionLibraryController中po self.navigationController 竟然为nil
发现在init方法中 写了这个方法self.collectionView.backgroundColor = [UIColor whiteColor];导致viewDidLoad 提前执行……
去掉 设置color的方法 displayModeButtonItem 出现了~~
近期评论