У меня проблема с моим Master View controller
, не указанным в моей раскадровке.Мастер-вид не отображается, как указано в раскадровке
При поиске на этом (удивительном) сайте я научился проверять свои методы numberOfSectionsInTableView
и tableView:numberOfRowsInSection:
. Я считаю, что моя проблема заключается в том, что tableView:numberOfRowsInSection:
возвращает 'int 0'
.
Любая помощь будет высоко оценена.
Мои MasterViewController.m:
#import "ParentMasterViewController.h"
#import "ParentDetailViewController.h"
#import "NewEventDataController.h"
#import "NewEvent.h"
@interface ParentMasterViewController()
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end
@implementation ParentMasterViewController
- (void)awakeFromNib
{
[super awakeFromNib];
self.dataController = [[NewEventDataController alloc] init];
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Table View
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [[self.fetchedResultsController sections] count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.dataController countOfList];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
static NSDateFormatter *formatter = nil;
if (formatter == nil)
{
formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // forIndexPath:indexPath];
// note: Add some code like this to create a new cell if there are none to reuse
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
NewEvent *eventAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
[[cell textLabel] setText:eventAtIndex.event];
[[cell detailTextLabel] setText:[formatter stringFromDate:(NSDate *)eventAtIndex.date]];
return cell;
}
Кроме того, мой NewEventDataController.m:
#import "NewEventDataController.h"
#import "NewEvent.h"
@interface NewEventDataController()
- (void)initializeDefaultDataList;
@end
@implementation NewEventDataController
- (void)initializeDefaultDataList
{
NSMutableArray *eventList = [[NSMutableArray alloc] init];
self.masterNewEventList = eventList;
NewEvent *event;
NSDate *today = [NSDate date];
event = [[NewEvent alloc] initWithName:@"Event" date:today];
[self addNewEventWithEvent:event];
}
- (void)setMasterNewEventList:(NSMutableArray *)newList
{
if (_masterNewEventList != newList)
_masterNewEventList = [newList mutableCopy];
}
- (id)init
{
if (self = [super init])
{
[self initializeDefaultDataList];
return self;
}
return nil;
}
- (NSUInteger)countOfList
{
return [self.masterNewEventList count];
}
- (NewEvent *)objectInListAtIndex:(NSUInteger)theIndex
{
return [self.masterNewEventList objectAtIndex:theIndex];
}
- (void)addNewEventWithEvent:(NewEvent *)event
{
[self.masterNewEventList addObject:event];
}
@end
Заранее спасибо за взглянуть.
Попробуйте положить точку останова на self.dataController = [[NewEventDataController Alloc] инициализации]; и посмотреть, вызвана ли она. –
Спасибо за ответ. Оно делает. Сразу после ответа отладка показывает '_dataController = NewEventDataController (NewEventDataController *) 0x07470a00' –