I have subclassed an UITableViewController, which I am instantiating trough a segue.
It seems that the table view controller is correctly instantiated as viewDidLoad and numberOfSectionsInTableView are being called.
In fact, numberOfSectionsInTableView is called even twice. When it is called first, it has a valid value for tableView, when it is called for the second time (right after the first call), tableView is nil.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [super numberOfSectionsInTableView:tableView] + 1 ;
}
I am using a static cell (in section 0, row 0) which I have set up in Interface Builder and I am adding a dynamic number of rows in the second section (section 1). That is why I have added 1 to [super numberOfSectionsInTableView:tableView]. There is no custom code in the parent’s tableView class, everything is just set up in Interface Builder.
All outlets seem to be set correctly:

When the execution of the code continues, the app crashes with the error message:
Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]
Do you have any idea on what could cause the error?
Basically means that every time
numberOfSectionsInTableViewgets called the number of sections in the table will increase by 1. That being said, if you are only ever going to have two sections in the table, you’d be better off withreturn 2;.Now, on to your error. It’s kind of hard to say considering I don’t know the exact context or where the error occurred, but my first guess is that the crash happened in
cellForRowAtIndexPathbecause your datasource is either nil or and is an empty array.