如何使用故事板正确地搜索嵌入式标签栏和导航控制器?

时间:2012-09-17 18:31:04

标签: xcode uinavigationcontroller uitabbarcontroller uistoryboardsegue

我有一个应用程序,用户从选择器轮中选择他们的国家。出现警报并要求他们确认更改。如果他们确认,则会将他们带到不同的视图,然后他们可以从类别列表中进行选择以显示信息...

类别列表嵌入在导航控制器中,以便于从详细视图“返回”移动到类别选择视图。

整个应用程序嵌入在标签栏控制器中。

它工作正常(选择他们的国家后,他们被带到选择类别屏幕),但现在选择类别已失去与标签栏控制器的连接,并且无法返回到应用程序的其他部分。

这是我的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 个答案:

答案 0 :(得分:1)

找到答案实际上是要了解标签栏控制器的作用,它如何默认为根视图控制器,然后如何使用它来访问各种视图控制器,而不是试图进行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");

}
}