初学者使用Tab Bar和SelectedIndex?

时间:2012-08-06 20:32:53

标签: ios tabs uitabbarcontroller selectedindex

我在没有编码的情况下在IB中构建了100%的app。我的编码背景很少,所以请回答一下。 :)

我需要一种方法来设置一个按钮(在我的标签栏控制器之外)将我带到我的标签栏控制器中的特定标签。当我在IB中执行模态链接时,它会将我带到那里,但底部的标签栏控制器已经消失。

我该怎么做? (非常感谢具体的例子)

以下答案:

我自己想出来......对于那些可能正在寻找类似解决方案的人......

我所做的只是在我的初始视图控制器中创建一个名为globalVariable的全局变量。

//myview.h
#ifndef Globals_h
#define Globals_h

extern NSInteger globalVariable;

#endif

使用模式推送到我的标签栏控制器的四个按钮填充该视图。每个按钮都有一个动作,可以改变globalVariable的值。

//myview.m
- (IBAction)button1Action:(id)sender {
    globalVariable = 0;
}
- (IBAction)button2Action:(id)sender {
    globalVariable = 1;
}
//etc etc

然后在标签栏控制器中,只需将selectedIndex设置为viewDidLoad中的globalVariable

//tabbarcontroller.m
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.selectedIndex = globalVariable;
}

2 个答案:

答案 0 :(得分:1)

我自己想出来......对于那些可能正在寻找类似解决方案的人......

我所做的只是在我的初始视图控制器中创建一个名为globalVariable的全局变量。

//myview.h
#ifndef Globals_h
#define Globals_h

extern NSInteger globalVariable;

#endif

使用模式推送到我的标签栏控制器的四个按钮填充该视图。每个按钮都有一个动作,可以改变globalVariable的值。

//myview.m
- (IBAction)button1Action:(id)sender {
    globalVariable = 0;
}
- (IBAction)button2Action:(id)sender {
    globalVariable = 1;
}
//etc etc

然后在标签栏控制器中,只需将selectedIndex设置为viewDidLoad中的globalVariable

//tabbarcontroller.m
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.selectedIndex = globalVariable;
}

答案 1 :(得分:0)

让IB为您的按钮设置补足动作

在该方法中,您希望访问作为当前控制器的父级的tabbar控制器

UITabBarController tbc = (UITabBarController) [self parentviewcontroller];
tbc.selectedIndex = 2;  //or whatever the index you need