如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?
Posted
技术标签:
【中文标题】如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?【英文标题】:How To Correctly Segue To An Embedded Tab Bar and Navigation Controller Using Storyboards? 【发布时间】:2012-09-17 18:31:03 【问题描述】:我有一个应用程序,用户可以在其中从选择轮中选择他们的国家/地区。出现警报并要求他们确认更改。如果他们确认,它会将他们带到不同的视图,然后他们可以从类别列表中选择以显示信息...
类别列表嵌入在导航控制器中,便于从详细视图“返回”移动到类别选择视图。
整个应用程序嵌入在一个标签栏控制器中。
它工作正常(在选择他们的国家后,他们会被带到选择类别屏幕),只是现在选择类别已经失去了与选项卡栏控制器的连接,并且无法返回应用程序的其他部分。
这是我的 alertView 代码:
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
if (buttonIndex == 0)
NSLog(@"ok");
//I tried the following but it doesn't do anything
//SelectCategory *switchtocategory = [[SelectCategory alloc] init];
//[self.navigationController pushViewController:switchtocategory animated:YES];
//the following works but loses the tab/navigation bars
[self performSegueWithIdentifier: @"GoToCategory" sender: self];
else
NSLog(@"cancel");
【问题讨论】:
【参考方案1】:找到答案实际上是要了解 Tab Bar Controller 的角色,它如何默认为根视图控制器,然后如何使用它来访问各种视图控制器,而不是尝试进行 segue。阅读 Apple 文档对此有所帮助,但代码变得非常简单:
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
if (buttonIndex == 0)
NSLog(@"ok");
//the following transitions to tab #3 when the alertView is touched/clicked/dismissed
[self.tabBarController setSelectedIndex:2];
else
NSLog(@"cancel");
【讨论】:
以上是关于如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?的主要内容,如果未能解决你的问题,请参考以下文章