2012-06-20 1 views
0

для моего Ipad приложения у меня есть требование, как этотIpad просмотров множественным подробно с навигацией

Для каждой строки в корневой точки зрения, я хочу, чтобы отобразить другой точки зрения детализации и

Детальный вид имеет некоторые кнопки мыши на нем будет показать другое представление (detailview должен находиться под навигационным контроллером)

Любой может дать мне учебник/пример кода/видео, который соответствует этому требованию?

Я пробовал более 20 похожих вопросов здесь и поиск youtube и все, но не повезло.

У меня есть одна ссылка http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/, но у нее есть некоторые проблемы с pop-over не скрывается, когда мы выбираем строку в портретном режиме.

Любая помощь будет оценена по достоинству.

Спасибо.

PS: Мое требование что-то вроде этого

 
ROOTVIEW 
|— OPTION 1 
|— (uinavigationcontroller) 
| |OPT1_DETAILVIEW 
| |– OPT1_DRILLDOWNVIEW1 
| |–OPT1_DRILLDOWNVIEW2 
| |–etc 
|— OPTION 2 
|— (uinavigationcontroller) 
| |OPT2_DETAILVIEW 
| |– OPT2_DRILLDOWNVIEW1 
| |–etc 
|— OPTION 3, etc

ответ

1

Я также столкнулся с этой проблемой для моего проекта. Я выполнил это, используя следующий код:

Что вам нужно сделать, когда вы нажимаете на любую ячейку таблицы просмотра контроллера корневого представления, вам нужно загрузить соответствующий диспетчер представлений.

Следующий код, который вы должны написать в таблице tableViewDidSelectRowaAtIndexPath в представлении таблицы контроллера корневого представления.

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    //Load previous controllers array. 

    NSMutableArray *viewControllerArray=[[NSMutableArray alloc] initWithArray:splitViewController.viewControllers]; 

    //Remove last Detail View controller Object. 

    [viewControllerArray removeLastObject]; 

    // Check appropirate row value. 

    if (indexPath.row == 0) { 
     // Add new Detail controller in your array ... 
     FirstViewController *fvc=[[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];   
     [viewControllerArray addObject:fvc]; 
    } 
    else if (indexPath.row == 1) { 
     // Add new Detail controller in your array ... 
     SecondViewController *svc=[[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];   
     [viewControllerArray addObject:svc]; 
    } 
    // And so on.. 

    // Set New View Controllers of SplitViewController 

    [splitViewController setViewControllers:viewControllerArray]; 
    [viewControllerArray release];  
} 

Я сделал это, и это сработало. Надеюсь, это поможет.

+0

, но я думаю, что есть утечка памяти, как объекты добавляются непрерывно, когда пользователь нажимает на них также, как сделать вид детали контроллер навигации на основе т.е. способного выдвинуть взгляды – cnu

+0

не может быть никаких утечек, как мы создаем и отпускание объекты. Чтобы сделать подробный просмотр на основе навигации, вы можете поместить UINavigationController либо в файл NIB, либо добавить его во время инициализации контроллера представления. – iNeal

+0

Создать контроллер навигации. UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController: fvc]; [navController release]; – iNeal