2010-07-23 28 views
0

我有一個初始表格視圖,我在我的應用程序中創建了初始菜單。顯然,每個選項都會訪問不同的內容,包括NIB。菜單選項的部分常量是NIB。當每個選項從PLIST中提取時,我還會包含哪個NIB,我希望被調用。基於表格選擇加載特定的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]; 
} 

}

回答

0

嘗試使用[targetnib isEqualToString:@ 「TheNibName」]。在您的發佈代碼中,您正在比較指針,而不是文本。

+0

這很有道理。然而,因爲它期望(和)我試圖 如果([targetnib isEqualtoString:@「DirectoryViewController」]) 我得到一個可能不會響應警告,它崩潰時運行。所以這看起來是正確的方式,我仍然在某處弄亂了語法。 – TheHockeyGeek 2010-07-23 13:13:47

+0

也許你只是在註釋中輸入了這個錯誤,但是確保選擇器是isEqualToString:not isEqualtoString :,就像你輸入的那樣。 – 2010-07-23 13:24:10

+0

另外...是否有一個特定的原因,你打字這是一個NSMutableString而不是一個NSString? NSMutableString將安全地轉換爲NSString,但反之亦然(如果您真的希望自己的字符串可變,則需要製作mutableCopy)。 – 2010-07-23 13:27:35