【问题标题】:iOS Jump to different viewiOS 跳转到不同的视图
【发布时间】:2010-10-07 02:38:05
【问题描述】:

我有一个基于导航的应用程序。根视图是项目列表。在这个根视图中,您可以点击表格单元格进入项目的详细视图。或者您可以通过导航栏中的“添加”按钮转到表单视图以创建新项目。

我的问题是创建新对象后如何从表单视图跳转到详细视图?

我不想将详细视图推送到表单视图之上,因为我希望根表视图成为用户在从详细视图中按下“返回”导航按钮后看到的内容。

我尝试了以下方法。它可以很好地弹出到根视图,但之后不会推送详细视图..

[context save:&error];

[self.navigationController popToRootViewControllerAnimated:NO];

// display detail view
GoalDetailViewController *detailViewController = [[GoalDetailViewController alloc] initWithNibName:@"GoalDetailViewController" bundle:nil];

// Pass the selected object to the new view controller.
detailViewController.goal = goal;

[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];

任何帮助和指导将不胜感激:)

干杯!

【问题讨论】:

    标签: iphone ios xcode cocoa-touch


    【解决方案1】:

    通常您会使用模态显示的视图控制器来实现添加按钮。

    [self presentModalViewController:modalViewController animated:YES];
    

    表示它从屏幕底部显示(请参阅添加联系人)。然后,当他们按下右上角的完成时,您可以在导航控制器上推送详细视图控制器而不对其进行动画处理,从而使后退按钮返回到原始列表视图。

    【讨论】:

    • 啊,是的,这更有意义。我想我最好多关注人机界面指南。感谢您的帮助!
    【解决方案2】:

    这在应用程序中并不常见,但可以通过以下方式完成:

    // Get the current view controller stack.
    NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
    
    // Instantiate your new detail view controller
    GoalDetailViewController *detailViewController = [[GoalDetailViewController alloc] initWithNibName:@"GoalDetailViewController" bundle:nil];
    detailViewController.goal = goal;
    
    // Remove the topmost view controller from the stack
    [viewControllers removeLastObject];
    // Replace it with the new detail view controller
    [viewControllers addObject:detailViewController];
    
    // Change the view controller stack
    [self.navigationController setViewControllers:viewControllers animated:YES];
    
    // Clean up
    [detailViewController release];
    

    您得到的确切动画描述为here

    【讨论】:

    • 感谢您的反馈 :) 但看起来我尝试这样做的方式是错误的。模态视图是我应该使用的。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多