Iphone 基于tableview选择加载特定NIB
我有一个初始的表格视图,它是我在应用程序中创建的初始菜单。显然,每个选项将访问不同的内容,包括NIB。菜单选项的部分常量是NIB。当从PLIST中提取每个选项时,我还包括希望调用的NIB 我是错过了什么,还是完全走错了路 现在,选择不起任何作用Iphone 基于tableview选择加载特定NIB,iphone,objective-c,xcode,uitableview,nib,Iphone,Objective C,Xcode,Uitableview,Nib,我有一个初始的表格视图,它是我在应用程序中创建的初始菜单。显然,每个选项将访问不同的内容,包括NIB。菜单选项的部分常量是NIB。当从PLIST中提取每个选项时,我还包括希望调用的NIB 我是错过了什么,还是完全走错了路 现在,选择不起任何作用 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSMutableString *targetnib = [[s
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSMutableString *targetnib = [[self.menuoptions objectAtIndex:indexPath.row] objectForKey:NIB_KEY];
if (targetnib == @"HospitalDirectoryViewController") {
HospitalDirectoryViewController *hospitalDirectoryViewController = [[HospitalDirectoryViewController alloc] initWithNibName:@"HospitalDirectoryViewController" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:hospitalDirectoryViewController animated:YES];
[hospitalDirectoryViewController release];
}
if (targetnib == @"PhysicianDirectoryViewController") {
PhysicianDirectoryViewController *physicianDirectoryViewController = [[PhysicianDirectoryViewController alloc] initWithNibName:@"PhysicianDirectoryViewController" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:physicianDirectoryViewController animated:YES];
[physicianDirectoryViewController release];
}
}尝试使用[targetnib IsequalString:@TheNibName]。在您发布的代码中,您是在比较指针,而不是文本。这很有意义。然而,由于它是预期的,并且我尝试了[targetnib IsequalString:@DirectoryViewController],因此我收到一个可能不响应的警告,它在运行时崩溃。因此,这似乎是正确的方法,我仍然在某个地方弄乱语法。也许您只是在注释中键入了错误的内容,但请确保您键入的选择器是isEqualToString:而不是isEqualToString:。此外。。。您将其作为NSMutableString而不是NSString键入有什么具体原因吗?NSMutableString将安全地强制转换为NSString,但反之亦然。如果您确实希望字符串可变,则需要制作可变副本。我将其改回NSString。我不知道为什么我会这么做。大小写isEqualtoString-->isEqualtoString的更改修复了它。这些小小的疏忽让我抓狂。