Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:
ios, uitableview
Solution
When initializing your view controller by calling
[[GroupDetailViewController alloc] initWithNibName:@"GroupDetailViewController" bundle:nil];
we are expecting you to provide the corresponding xib ("GroupDetailViewController"). If you don't want to use a xib, just call
[[GroupDetailViewController alloc] init]
and implement `loadView` in your `GroupDetailViewController` class.
Problem
i have two view controllers, GroupListViewController and GroupDetailViewController, switch back and forth, When switch forth by click the row cell, Run with error, I do not have xib even. i do all component programmatically. search with the same question in here, it is not my type. in code snippet below, "CustomGroupListViewCell *plcc" CustomGroupListViewCell is a custom UITableViewCell, you can implement a dump one with empty, list the code here. GroupListViewController.h ``` #import <UIKit/UIKit.h> @class GroupDetailViewController; @interface GroupListViewController : UITableViewController { NSArray * contentArray; GroupDetailViewController * dvController; } @property (nonatomic, retain) GroupDetailViewController * dvController; @end ``` GroupListViewController.m ``` #import "GroupListViewController.h" #import "CustomGroupListViewCell.h" #import "ZYAppDelegate.h" #import "GroupDetailViewController.h" @interface GroupListViewController () @end @implementation GroupListViewController @synthesize dvController; - (void) viewDidLoad { contentArray = [[NSArray arrayWithObjects:@"heyun", @"wushi", @"ios", nil]retain]; [super viewDidLoad]; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void) dealloc { [dvController release]; [super dealloc]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear: animated]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear: animated]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear: animated]; } - (void)viewDisDisappear:(BOOL)animated { [super viewDidDisappear: animated]; } - (NSInteger)numberOfSectionsInTableView: (UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [contentArray count]; } // custom row height - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { // dynamic with whether the cell has the gourp image or not.. return 160; } // Customize the appearance of table view cells - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"PartyListCustomCell"; CustomGroupListViewCell *plcc = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(plcc == nil) { plcc = [[[CustomGroupListViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } // set up custom cell plcc.gourpTitle.text = @"gourpTitle"; return plcc; } - (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (dvController == nil) { GroupDetailViewController *aController = [[GroupDetailViewController alloc] initWithNibName:@"GroupDetailViewController" bundle:nil]; self.dvController = aController; [aController release]; } [dvController updateRowNumber:indexPath.row]; [[self navigationController] pushViewController:dvController animated:YES]; } @end ``` GroupDetailViewController.h ``` #import <UIKit/UIKit.h> @interface GroupDetailViewController : UITableViewController { int rowNumber; } @property(readwrite) int rowNumber; - (void) updateRowNumber:(int) theindex; @end ``` GroupDetailViewController.m ``` #import "GroupDetailViewController.h" @interface GroupDetailViewController () @end @implementation GroupDetailViewController @synthesize rowNumber; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void) updateRowNumber: (int) theindex { rowNumber = theindex + 1; UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; label1.text = [NSString stringWithFormat:@"row %i was clicked ", rowNumber]; [self.view addSubview: label1]; [label1 release]; } - (void)dealloc { [super dealloc]; } - (void)viewDidLoad { UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(50.0, 20.0, 200.0, 50.0)]; label1.text = [NSString stringWithFormat:@"row %i was clicked ", rowNumber]; [self.view addSubview: label1]; [super viewDidLoad]; [label1 release]; // Do any additional setup after loading the view from its nib. } - (void)fetchedData: (NSData *)responseData { // parse out the json data } - (void)viewDidUnload { [super viewDidUnload]; // Do any additional setup after loading the view from its nib. } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear: animated]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear: animated]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end ```