我有以下问题: 有一个类按以下方式包含五个选项卡:
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];
有人对这个问题有所了解吗?谢谢。鲍拉。
答案 0 :(得分:0)
您需要获取MainMenuClient的实例:
将MainMenuClient.h中的方法定义为:
+(MainMenuClient*)getMainMenuInstance;
在MainMenuClient.m中实现以下方法:
+(MainMenuClient*)getMainMenuInstance
{
return self;
}
现在你可以在任何类中获得相同的UITabBarContrtoller实例:
MainMenuClient *menuClient = [MainMenuClient getMainMenuInstance];
UITabBarContrtoller *newTabBarController = menuClient.tabBarController;
您可以使用这个新的UITabBarController对象执行任何操作。
希望这有帮助。
吉姆。