刚开始iOS开发时,我得到了在选项卡1(第二个选项卡)中使用TableViewController创建UITabBarController时的崩溃。iOS UITabBarController问题
这里是我的代码 - AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
diseases = [NSMutableArray arrayWithCapacity:5];
Disease *disease1 = [[Disease alloc] init];
Disease *disease2 = [[Disease alloc] init];
Disease *disease3 = [[Disease alloc] init];
Disease *disease4 = [[Disease alloc] init];
Disease *disease5 = [[Disease alloc] init];
disease1.name = @"disease1";
disease2.name = @"disease2";
disease3.name = @"disease3";
disease4.name = @"disease4";
disease5.name = @"disease5";
[diseases addObject:disease1];
[diseases addObject:disease2];
[diseases addObject:disease3];
[diseases addObject:disease4];
[diseases addObject:disease5];
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController =
[[tabBarController viewControllers] objectAtIndex:0];
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"NormalBiopsy" bundle:nil];
firstViewController = [[tabBarController viewControllers] objectAtIndex:0];
DiseaseTableViewController *diseaseTableViewController = [[DiseaseTableViewController alloc] initWithNibName:@"DiseaseTableViewController" bundle:nil];
diseaseTableViewController = [[tabBarController viewControllers] objectAtIndex:1];
SecondViewController *secondViewController = [[SecondViewController alloc]
initWithNibName:@"TestYourSelf" bundle:nil];
secondViewController = [[tabBarController viewControllers] objectAtIndex:2];
ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"About" bundle:nil];
thirdViewController = [[tabBarController viewControllers] objectAtIndex:3];
// Override point for customization after application launch.
return YES;
}
这导致与在DiseaseTableViewController的TableView中空白表的UITabBarController - 因为填充任何数据。 但是,如果我做
diseaseTableViewController.diseases = diseases;
应用程序崩溃与:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '- [UINavigationController setDiseases:]: unrecognized selector sent to instance
于是,我就添加diseaseTableViewController到navigationController:
diseaseTableViewController = [[navigationController viewControllers] objectAtIndex:1];
导致:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[FirstViewController viewControllers]: unrecognized selector sent to instance
我尝试在该类实现中填充DiseaseTableViewController而不是AppDelegate,但在UI中再次以空白表格结束。
任何想法?
谢谢,但我想你稍稍偏出了来自我可怜的解释的问题!只有DiseaseTableViewController(有一系列疾病)在标签1(第二个标签)上,其余的是不同的视图控制器。因此,我会有5种疾病作为表中的条目(这是否有意义,或者我可以在DiseaseTableViewController的viewDidLoad方法或它的视图?)。我已经有一个UiNavigationController指向DiseasTableViewController,但不断得到该选择错误 – oliveromahony 2012-02-24 19:16:31