2012-05-26 2 views
0

У меня есть требование загрузить несколько viewControllers на detailViewController на splitView. somethingLike enter image description hereUISplitViewController нажимает несколько подробных обзоров iPad?

, когда будильник включен, так что я могу нажать на соответствующий контроллер просмотра на detailView. вид с левой стороны - это uitableview.

мой код здесь на AppDelegate.m

#import "splitDetailViewController.h" 
#import "splitTableViewController.h" 

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 

    splitTable=[[splitTableViewController alloc]initWithStyle:UITableViewStyleGrouped]; 
    UINavigationController *splitTableNav=[[UINavigationController alloc]initWithRootViewController:splitTable]; 

    splitDetails=[[splitDetailViewController alloc]initWithNibName:nil bundle:nil]; 
    UINavigationController *splitDetailNav=[[UINavigationController alloc]initWithRootViewController:splitDetails]; 


    self.splitViewController.delegate=splitDetails; 

    splitViewController=[[UISplitViewController alloc]init]; 

    splitViewController.viewControllers=[NSArray arrayWithObjects:splitTableNav,splitDetailNav, nil]; 





    [self.window addSubview:splitViewController.view]; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
    } 

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

надеюсь, что я получу помощь!

ответ

1

хорошо, я нашел одно решение, оно работает отлично

http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/

Thankyou

+0

пожалуйста, помогите мне, как я могу использовать UIspliteviewcontroler в IPad. Теперь я хочу добавить 2 UItableview. Когда я нажимаю левый UItableview, я хочу показать правлю UItableview. как я могу это сделать. пожалуйста, дайте мне некоторое представление. И на экране выше, как вы это сделали. Пожалуйста, скажите мне. Спасибо в Advance – sathis

+0

просто используйте UISplitViewController в своем коде –

+0

@sathis просто создайте объекты для обоих ваших контроллеров представления и добавьте это в UISplitViewController. self.splitViewController = [[UISplitViewController alloc] init]; splitViewController.viewControllers = [NSArray arrayWithObjects: TableViewController1, TableViewController2, nil]; –

4

Я искал решения подобной проблемы. В моем случае я хотел, чтобы tableview ссылался на несколько подробных просмотров в зависимости от выбора. Я мог бы накладывать данные на один диспетчер представлений, но искал лучшего решения. Вот что я сделал. Он прост и работает намного лучше, чем некоторые из сложных и устаревших вариантов, которые я нашел до сих пор.

Я просто дал раскадровки ID в инспекторе идентичности к ViewController, что я хотел появляться в DetailView («второй») и на didSelectRowAtIndexPath я просто добавил:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 
} 

Так что, когда кто-то нажимает на ячейку в главном представлении отображается подробный вид.

Простой, если оператор может переключить какое представление показано:

if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"Second Choice"]) { 
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 
} else if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"First Choice"]) { 
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"first"]; 

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 
}; 

Вы можете просто использовать кнопки, переключатели или что-нибудь еще вместо вида таблицы, но дело в том, что при добавлении «раскадровка ID» в «тождества инспектор»

и просто инстанцирование контроллера представления с помощью ссылки на «Storyboard ID», а затем толкает его к контроллеру разделить с индексом 1 (стороны подробно) ее простой и быстрый

TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"]; 

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES]; 

Надеется, что это помогает

+0

Хорошее решение ... мне это нравится – Biranchi

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