【问题标题】:Load a particular NIB based on tableview selection根据 tableview 选择加载特定的 NIB
【发布时间】:2010-07-23 12:41:59
【问题描述】:

我创建了一个初始表格视图,作为我的应用程序中的初始菜单。显然,每个选项都会访问不同的东西,包括 NIB。菜单选项的部分常量是 NIB。当从 PLIST 中提取每个选项时,我还包括我希望调用的 NIB。

我是错过了什么,还是我完全走错了路?

现在选择什么都不做。

- (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];
}

}

【问题讨论】:

    标签: iphone objective-c xcode uitableview nib


    【解决方案1】:

    尝试使用 [targetnib isEqualToString: @"TheNibName"]。在您发布的代码中,您是在比较指针,而不是文本。

    【讨论】:

    • 这是有道理的。但是,由于它期望 ( and ) 我尝试了 if ([targetnib isEqualtoString:@"DirectoryViewController"]) 我收到了可能没有响应的警告,并且它在运行时崩溃了。所以这似乎是正确的方法,我仍然在某个地方弄乱了语法。
    • 也许您只是在评论中输入了错误,但请确保选择器是 isEqualToString: 而不是 isEqualtoString:,就像您输入的那样。
    • 另外...您将其键入为 NSMutableString 而不是 NSString 是否有特定原因? NSMutableString 将安全地转换为 NSString,但反之亦然(如果您真的希望字符串可变,则需要制作 mutableCopy)。
    • 我把它改回了 NSString。不知道为什么我做了可变的。大小写的变化 isEqualtoString ---> isEqualToString 修复了它。小小的疏忽让我着迷。
    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2016-07-24
    相关资源
    最近更新 更多