1

在我的 Mac 中,我有 3.2.5 版 xcode 我创建 spliteview 应用程序 当我单击单元格上的左侧视图时,我遇到 curl 效果问题,然后右侧的 detailview 必须打开 curl up 我想只给 curlup detailview,而不是在所有 splitiew我想就像文化代码应用程序名称一样

这是我尝试的代码,但它适用于整个拆分视图当我从左侧视图中选择单元格时,我只想运行 curlup 详细视图

#pragma mark -
#pragma mark Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here. Create and push another view controller.
   // NSUInteger row = indexPath.row;

    UIViewController <SubstitutableDetailViewController> *detailViewController = nil;

    if ([indexPath row] == 0 && [indexPath section] == 0) {
        TodoDetailViewController *newDetailViewController = [[TodoDetailViewController alloc] initWithNibName:@"TodoDetailViewController" bundle:nil];
        detailViewController = newDetailViewController;
    }

    if ([indexPath row] == 0 && [indexPath section] == 1){
        PeopleViewController *newDetailViewController = [[PeopleViewController alloc] initWithNibName:@"PeopleViewController" bundle:nil];
        detailViewController = newDetailViewController;
    }

    if ([indexPath row] == 1 && [indexPath section] == 1){
        DocumentsViewController *newDetailViewController = [[DocumentsViewController alloc] initWithNibName:@"DocumentsViewController" bundle:nil];
        detailViewController = newDetailViewController;
    }

    if ([indexPath row] == 2 && [indexPath section] == 1){
        PlannerViewController *newDetailViewController = [[PlannerViewController alloc] initWithNibName:@"PlannerViewController" bundle:nil];
        detailViewController = newDetailViewController;
    }

    //if ([indexPath row] == 0 && [indexPath section] == 2){
//        PlannerRequestsViewController *newDetailViewController = [[PlannerRequestsViewController alloc] initWithNibName:@"PlannerRequestsViewController" bundle:nil];
//        detailViewController = newDetailViewController;
//    }

    if ([indexPath row] == 0 && [indexPath section] == 2){
        ArchivedPeopleViewController *newDetailViewController = [[ArchivedPeopleViewController alloc] initWithNibName:@"ArchivedPeopleViewController" bundle:nil];
        detailViewController = newDetailViewController;
    }


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

    //new try-----today
    //splitViewController.viewControllers = [NSArray
                                     //  arrayWithObjects:masterView, detailsView, nil];
    splitViewController.viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil];

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:splitViewController.view cache:YES];
    [UIView commitAnimations];
4

1 回答 1

1

尝试更换

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:splitViewController.view cache:YES];

经过

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:detailViewController.view cache:YES];

*更新*

在 TodoDetailsViewContrroller.h

- (void)viewWillAppear:(BOOL)animated 
{
    [super viewWillAppear:animated];

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
    [UIView commitAnimations];
}
于 2012-04-12T04:27:19.913 回答