Я пытаюсь узнать, как использовать разные представления, для этого примера тестового приложения у меня есть страница входа, после успешного входа пользователь перенаправляется в представление таблицы, а затем при выборе элемента в представлении таблицы, пользователь направляется на третью страницу с подробностями об элементе.
первая страница работает нормально, но проблема возникает, когда я перехожу на вторую страницу, в отображаемой таблице нет заголовка, и я не могу добавить заголовок или панель инструментов или что-либо, кроме содержимого самих таблиц. и когда я нажимаю на элемент, само собой разумеется, ничего не происходит. ошибок тоже нет.
Я довольно новичок в программировании и всегда работал на Java, но никогда не работал на C (хотя у меня есть некоторые базовые знания C), и Objective C для меня нов.
Вот код.
-(IBAction) login {
RootViewController *rootViewController = [[RootViewController alloc] init];
if([username.text isEqualToString:@"test"]&&[password.text isEqualToString:@"test"]){
[window addSubview:[rootViewController view]];
[window makeKeyAndVisible];
}
else {
loginError.text = @"LOGIN ERROR";
[window addSubview:[viewController view]];
[window makeKeyAndVisible];
}
}
@interface RootViewController : UITableViewController {
IBOutlet NSMutableArray *views;
}
@property (nonatomic, retain) IBOutlet NSMutableArray * views;
- (void)viewDidLoad {
views = [ [NSMutableArray alloc] init];
OpportunityOne *opportunityOneController;
for (int i=1; i<=20; i++) {
opportunityOneController = [[OpportunityOne alloc] init];
opportunityOneController.title = [[NSString alloc] initWithFormat:@"Opportunity %i",i];
[views addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[[NSString alloc] initWithFormat:@"Opportunity %i",i], @ "title", opportunityOneController, @"controller", nil]];
self.title=@"GPS";
}
[super viewDidLoad];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
cell.textLabel.text = [[views objectAtIndex:indexPath.row] objectForKey:@"title"];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *targetViewController = [[views objectAtIndex:indexPath.row] objectForKey:@"controller"];
[[self navigationController] pushViewController:targetViewController animated:YES];
}
Ого, мне было очень сложно опубликовать код. Я прошу прощения за плохое форматирование, но я просто не смог пройти мимо правил форматирования для этого текстового редактора.
Спасибо,
Шаши