我潛入iOS開發手動創建一個拆分視圖佈局,我試圖創建一個使用拆分視圖佈局的iPad應用程序,而無需使用UISplitViewController。我發現this question已經發布,但它對於我目前的iOS體驗級別來說幫助過於模糊。不使用UISplitViewController
總之,我有一個UIViewController類名爲MySplitViewController包含兩個孩子觀看控制器,一個用於主視圖,一個用於詳細視圖。我試圖通過一種方式實現這一點,當我將MySplitViewController的實例推送到導航堆棧時,我在左側獲得了一個表視圖(主控),在左側獲得了一個詳細視圖。但是,當我運行我的代碼時,整個拆分視圖會填充表視圖。我如何手動創建分割視圖佈局?下面是我的三個視圖控制器類,他們是很簡單的...
MySplitViewController.m
#import "MySplitViewController.h"
#import "MasterViewController.h"
#import "DetailViewController.h"
@interface MYSplitViewController(){}
@property (nonatomic, strong) MasterViewController *masterViewController;
@property (nonatomic, strong) DetailViewController *detailViewController;
@end
@implementation MySplitViewController
- (id)initWithCoder:(NSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) {
self.masterViewController = [[MasterViewController alloc] initWithNibName:nil bundle:nil];
self.detailViewController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.frame = CGRectMake(0, 0, 768, 1004);
[self.view addSubview:self.masterViewController.view];
[self.masterViewController viewDidLoad];
[self.view addSubview:self.detailViewController.view];
[self.detailViewController viewDidLoad];
}
@end
MasterViewController.m
#import "MasterViewController.h"
@interface MasterViewController()
@end
@implementation MasterViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 1004) style:UITableViewStylePlain];
table.dataSource = self;
table.delegate = self;
[self.view addSubview:table];
}
@end
DetailViewController.m
#import "DetailViewController.h"
@interface DetailViewController()
@end
@implementation DetailViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
UIView *uiview = [[UIView alloc] initWithFrame:CGRectMake(100, 0, 668, 1004)];
[self.view addSubview:uiview];
}
@end
我不理解什麼?
感謝這麼多提前爲你的智慧!
P.S.值得注意的是爲什麼我沒有使用UISplitViewController。我的應用程序目前設計爲使得根視圖不是分割視圖。我的應用程序的根視圖將導致分割視圖被推送到導航堆棧。這裏的問題是,UISplitViewController被設計爲一個應用程序的根視圖和蘋果的文檔明確說,如果你使用UISplitViewController,它需要是根視圖。因此,我正在實施我自己的拆分視圖並手動管理視圖。
我明白現在好你的另一個問題:) – Daniel