这是一个应用程序设计问题,而不是特定于代码的问题。
我的问题是我有一个使用单个UINavigationController的iPhone应用程序,用户可以点击数据项来向UIViewControllers推送更多更详细的信息。
示例:
主菜单 - >分类列表 - >品牌列表 - >品牌详情 - >产品列表 - >产品详情 - >关联品牌列表 - >品牌详情 - >产品列表 - >产品详情 - >等
当他们想要回到主菜单时,他们必须按下后退按钮,例如,10次。这显然是一种糟糕的用户体验,但由于iPhone上的屏幕空间量需要为我的深层嵌套数据提供大量补充视图,这是必要的。
你们是怎么解决这个问题的?
我听说“汉堡包”按钮/侧抽屉是要走的路,但这对WWDC 2014来说是一个很大的“不行”,它会导致亚马逊应用程序中出现汉堡包和后退按钮的情况。同时也在其他各种时间只显示一个或另一个。
我还在考虑可能会点击导航栏标题来放松到主菜单,但它似乎并不直观,我也没有看到它在其他应用程序中使用过。
有关如何设法解决此应用设计问题的任何建议都会有所帮助。
编辑: 我知道如何放松,我知道如何弹出root。问题是关于“应用程序设计”。如何设计您的应用程序,以便您的用户不必点击后退按钮10次?我不想在每个视图上添加“转到主菜单”按钮,Apple特别说侧抽屉/汉堡按钮是个坏主意。
答案 0 :(得分:2)
在许多方面,只要上下文持续相同,拥有深层嵌套的东西并不一定是苹果公司标准的“应用程序设计”。比方说,你有一个播放视频的教育应用程序。相当深的层次结构可能如下所示:
查看教师页面 - >按教师查看课程 - >查看课程中的第一课 - >从课程中查看流行测验
在这种情况下,深层嵌套的导航控制器是您在标准网页上看到的隐式面包屑。推送到导航控制器堆栈的所有内容在前一个视图控制器的上下文中都是有意义的。
您能否在此提供有关具体用例的更多详细信息?这个通用问题很难帮助。您也可以考虑在StackExchange上查看UserExperience而不是StackOverflow,这是专门用于编码问题的。
答案 1 :(得分:0)
如果你想导航到第一个viewController,你可以使用popToRootViewControllerAnimated:或者你可以使用popToViewController:animated:以防你想要导航到特定的viewController。
答案 2 :(得分:0)
使用popToRootViewControllerAnimated
返回根视图控制器。
-(IBAction)backButtonClick:(id)sender {
[self.navigationController popToRootViewControllerAnimated:YES];
}