несколько основных и подробных видов в iPad, uisplitview - PullRequest
0 голосов
/ 08 марта 2011

Спасибо заранее.В настоящее время я разрабатываю версию приложения для iPad, которая на iphone имеет 3 вкладки, каждая из которых загружает 3 разных RSS-канала, а затем углубляется в детали с помощью контроллера навигации на iPhone.На iPad имеет смысл то, что я присоединяюсь к двум каналам в первом разделенном просмотре, а затем у меня есть отдельный мастер и подробности для третьего канала.

, что является лучшим способом для достижения этой цели.В настоящее время я настроил кнопку панели инструментов в первом подробном виде, который вызывает appdelegate, который переключает мастер и детали, так что

- (void)switchViews {

    VideoSelectorViewController *masterViewController = nil;
    VideoDetailiPadViewController *detailViewController = nil;
    UIViewController *tempDetail = [self.splitViewController.viewControllers objectAtIndex:1];
    UIViewController *tempMaster = [self.splitViewController.viewControllers objectAtIndex:0];
    [tempDetail.view removeFromSuperview];
    [tempMaster.view removeFromSuperview];
    [tempDetail release];
    [tempMaster release];
    tempDetail = nil;
    tempMaster = nil;

  //  if (row == 1) {
        VideoSelectorViewController *newMasterViewController = [[VideoSelectorViewController alloc] initWithNibName:@"VideoSelectorViewController" bundle:nil];
        masterViewController = newMasterViewController;

        VideoDetailiPadViewController *newDetailViewController = [[VideoDetailiPadViewController alloc] initWithNibName:@"VideoDetailiPadViewController" bundle:nil];
        detailViewController = newDetailViewController;

  //  }

    // Update the split view controller's view controllers array.
    NSArray *viewControllers = [[NSArray alloc] initWithObjects:masterViewController, detailViewController, nil];
    self.splitViewController.viewControllers = viewControllers;
    [viewControllers release];

/*  // Dismiss the popover if it's present.
    if (popoverController != nil) {
        [popoverController dismissPopoverAnimated:YES];
    }*/

    // Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created).
   // if (detailViewController.popover != nil) {
        [detailViewController showRootPopoverButtonItem:detailViewController.rootPopoverButtonItem];
    //}

    [masterViewController release];
    [detailViewController release];


}

это работает нормально, когда iPad находится в альбомной ориентации, но на портрете кнопка не отображаетсяна панели инструментов, как я могу вызвать - (void) splitViewController: (UISplitViewController *) svc willHideViewController программно?Кроме того, управление памятью для моего метода, должен ли я освободить и установить на ноль предыдущий мастер и детали, как у меня с этими временными объектами в моем методе switchViews?

Другой метод состоит в том, чтобы перенести новый мастер на старыйи просто заменить деталь.что лучше, память, производительность и т. д. еще раз спасибо

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Вашему ViewController требуется UISplitViewControllerDelegate

тогда он будет вызываться автоматически

См. http://developer.apple.com/library/ios/#documentation/uikit/reference/UISplitViewControllerDelegate_protocol/Reference/Reference.html

0 голосов
/ 15 марта 2011

Поскольку никто не смог дать какой-либо информации, я создал второе представление в подробном представлении, которое используется только с моим вторым табличным представлением

...