2013-04-18 2 views
0

Я реализую контроллер с раздельным просмотром программно для iPad. Это код, я использую в didFinishLaunching:SplitView - iPad

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 

MasterViewController *masterViewController = [[MasterViewController alloc] init]; 
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 

DetailedNewsViewController *detailViewController = [[DetailedNewsViewController alloc] init]; 
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 

masterViewController.detailViewController = detailViewController; 

self.splitViewController = [[UISplitViewController alloc] init]; 
self.splitViewController.delegate = detailViewController; 

self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController]; 

self.window.rootViewController = self.splitViewController; 
[self.window makeKeyAndVisible]; 

, но когда я запускаю этот код. МастерView показывает правильно, это TableViewController. Но DetailView не показывает, его просто черный экран, я попытался написать переменные, используемые в программном обеспечении DetailView, и добавить их в вид &, с которым он работал.

Почему для MasterViewController она принимает его непосредственно из раскадровки, тогда как для DetailViewController я должен кодироваться вручную?, И это действительно сложно сделать это вручную, я уже сделал все, что в раскадровке

Thank вы.

ответ

0

Нет необходимости masterViewController.detailViewController = detailViewController;, скорее, не использовать self.splitViewController.viewControllers = [NSArray arrayWithObjects: masterNavigationController, detailNavigationController,nil];

+0

Это лишь вопрос стиля в кодировании. Но я все еще получаю черный экран для DetailViewController –

+0

wats необходимость в masterViewController.detailViewController = detailViewController; и self.splitViewController.delegate = detailViewController ;? –

+0

masterViewController.detailViewController = detailViewController; используется для отправки сообщения в detailViewController, чтобы он мог отображать информацию. & self.splitViewController.delegate = detailViewController; используется для получения обновлений, когда MasterView покажет или скроет (делегирование) –

Смежные вопросы