Iphone SDK - добавление UITableView в UIView - PullRequest
0 голосов
/ 07 мая 2010

Я пытаюсь узнать, как использовать разные представления, для этого примера тестового приложения у меня есть страница входа, после успешного входа пользователь перенаправляется в представление таблицы, а затем при выборе элемента в представлении таблицы, пользователь направляется на третью страницу с подробностями об элементе.

первая страница работает нормально, но проблема возникает, когда я перехожу на вторую страницу, в отображаемой таблице нет заголовка, и я не могу добавить заголовок или панель инструментов или что-либо, кроме содержимого самих таблиц. и когда я нажимаю на элемент, само собой разумеется, ничего не происходит. ошибок тоже нет.

Я довольно новичок в программировании и всегда работал на 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];

}

Ого, мне было очень сложно опубликовать код. Я прошу прощения за плохое форматирование, но я просто не смог пройти мимо правил форматирования для этого текстового редактора.

Спасибо, Шаши

1 Ответ

0 голосов
/ 07 мая 2010

Начните с навигационного приложения. Сделайте столько контроллеров представления, сколько вам нужно (3 сверху). Передвигайте контроллеры представления от одного к другому, как вам нужно.

...