對不起,如果這個問題已經回答,但我找不到答案。如何使用Xib文件創建UIViewController?
我正在創建一個應用程序,其中有一個UITableViewController,並且當單元右側的附件按鈕被選中時,應創建一個包含在.xib文件中找到的接口的UIViewController的新實例。新的UIViewController將被推入堆棧並顯示出來。 我的問題是如何從現有的.xib文件創建新的UIViewController?
這是我到目前爲止嘗試過的: 在Xcode中:文件 - >新建文件 - > Cocoa Touch Class - > UIViewController子類。 複選框「UITableViewController子類」未選中。 複選框「使用XIB用戶界面」選中。
這會創建一個.m,.h和一個.xib文件。我在.xib文件的「視圖」中創建了一個用戶界面。在界面構建器中選擇「文件所有者」將顯示「Class Identity」中新創建的UIViewController。
一些代碼:
在DetailViewController.m(新的UIViewController):
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
return self;
}
在SubViewController.m(老的UITableViewController):
-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
//Exception thrown at line below
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
忘了提的是, .xib文件的名稱是「DetailViewController.xib」。
代碼編譯得很好,但是當我在模擬器中運行它並按下附件按鈕時,它會因未捕獲的異常而終止。
我錯過了什麼?
在此先感謝
在Xcode中,爲'objc_exception_thrown'設置一個斷點,以便在拋出異常時GDB將暫停,因此您可以看到堆棧跟蹤和一些您可能需要的洞察信息。 – Joost 2010-01-15 16:04:50
另外,在控制檯中,您應該獲得有關未捕獲異常的日誌。把它加到你的問題上,因爲它通常提供了一個關於錯誤發生的重要線索。 – 2010-01-15 21:06:56
好吧,我是Xcode的新手,所以我會研究一下。但它應該以這種方式工作?我沒有離開? initWithNibName方法和所有似乎是正確的? – 2010-01-16 12:53:29