UITabBarController从iPhone中的不同类实现

时间:2010-06-16 10:23:56

标签: iphone

我有以下问题: 有一个类按以下方式包含五个选项卡:

mainMenuClient.h

#import <UIKit/UIKit.h>

@interface MainMenuClient : UIViewController {
UITabBarController *tabBarController;
}
@property (nonatomic, retain) UITabBarController *tabBarController;

@end

mainMenuClient.m

-(void)viewDidLoad {

UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
contentView.backgroundColor = [UIColor blackColor];
self.view = contentView;
[contentView release];

ContactListTab *contactTab = [[ContactListTab alloc] init];
ChatTab *chat = [[ChatTab alloc]init];
DialerTab *dialer = [[DialerTab alloc]init];
MenuTab *menu = [[MenuTab alloc]init];
TesztingFile *teszting = [[TesztingFile alloc]init];
contactTab.title = @"Contact List";
chat.title = @"Chat";
dialer.title = @"Dialer";
menu.title = @"Menu";
teszting.title = @"TesztTab";

contactTab.tabBarItem.image = [UIImage imageNamed:@"Contacts_icon.png"];
chat.tabBarItem.image = [UIImage imageNamed:@"Chat_icon.png"];
dialer.tabBarItem.image = [UIImage imageNamed:@"Dialer_icon.png"];
menu.tabBarItem.image = [UIImage imageNamed:@"Menu_icon.png"];
teszting.tabBarItem.image = [UIImage imageNamed:@"Contacts_icon.png"];
chat.tabBarItem.badgeValue = @"99";

tabBarController = [[UITabBarController alloc]init];
tabBarController.view.frame = CGRectMake(0, 0, 320, 460);

[tabBarController setViewControllers:[NSArray arrayWithObjects:contactTab, chat, dialer, menu, teszting, nil]];

[contactTab release];
[chat release];
[dialer release];
[menu release];
[teszting release];

[self.view addSubview:tabBarController.view];

[super viewDidLoad];
}

在contactTab类中有一个UITableViewController。

contactTab.h

- (void)updateCellData;
- (void)configureCell:(UITableViewCell *)cell forIndexPath:(NSIndexPath *)indexPath;

还有第三个类,我想要实现的是UITableViewController的方法(来自ContactTab)。

到目前为止,我试过这个: 当我尝试实现UItabbarController时:

MainMenuClient *menu;
UITabBarController *tabBarControllerchange = [[UITabBarController alloc] init];
tabBarControllerchange = menu.tabBarController;
[tabBarControllerchange setSelectedIndex:0];

当我尝试实现UITableViewController时:

ContactListTab *contactListTab;
[contactListTab updateCellData];

有人对这个问题有所了解吗?谢谢。鲍拉。

1 个答案:

答案 0 :(得分:0)

您需要获取MainMenuClient的实例:

将MainMenuClient.h中的方法定义为:

+(MainMenuClient*)getMainMenuInstance;

在MainMenuClient.m中实现以下方法:

+(MainMenuClient*)getMainMenuInstance
{
     return self;
}

现在你可以在任何类中获得相同的UITabBarContrtoller实例:

MainMenuClient *menuClient = [MainMenuClient getMainMenuInstance];
UITabBarContrtoller *newTabBarController = menuClient.tabBarController;

您可以使用这个新的UITabBarController对象执行任何操作。

希望这有帮助。

吉姆。