iOS 跳转到不同的视图

Posted

技术标签:

【中文标题】iOS 跳转到不同的视图【英文标题】:iOS Jump to different view 【发布时间】: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];

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

干杯!

【问题讨论】:

【参考方案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。

【讨论】:

感谢您的反馈 :) 但看起来我尝试这样做的方式是错误的。模态视图是我应该使用的。干杯!

以上是关于iOS 跳转到不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

SwiftUI实现不同TabView标签页中任意导航层级视图之间自动相互跳转那些事儿

跳转到使用 UIPagecontrol 的滚动视图中的页面

iOS实现包含100万条数据的视图顺滑滚动和闪电跳转到任意页面

如何在详细视图中跳转到下一行

SwiftUI - 倒计时结束后,跳转到另一个视图