iPhone создает вложенные представления - PullRequest
1 голос
/ 11 августа 2011

Я новичок в программировании iPhone.

Я хочу создать приложение на основе навигации с несколькими вложенными представлениями, когда первое и второе имеют тип UITableView, а третье - простой UIView со своим собственным интерфейсом, который я встроил в Интерфейсный конструктор.

Когда я запускаю приложение, касаюсь строки в первом табличном представлении, которое я передаю второму, и когда я касаюсь строки во втором, я переносю в третье, но в третьем представлении я не вижу мой интерфейс, который я построил в Интерфейсном Разработчике, просто пустой экран.

Это часть моего кода, где я пытаюсь вызвать мой третий вид:

    if(self.reportView == nil){    
        ReportTypeViewController *viewController = 
        [[ReportTypeViewController alloc] initWithNibName:@"ReportTypeViewController" 
                                            bundle:[NSBundle mainBundle]];
        self.reportView = viewController;
        [viewController release];        
    }


    [self.navigationController pushViewController:self.reportView  animated:YES];
    self.reportView.title = @"Reports"; 

Все нормально, ребята. Я просто не добавил текст к своей кнопке, это мое мнение, поэтому оно было пустым.

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

В IB убедитесь, что вы установили для Class of File Owner значение ReportTypeViewController, и убедитесь, что выход view владельца File подключен к вашему виду.

2 голосов
/ 11 августа 2011

Вам не нужно [NSBundle mainBundle];

это должно выглядеть так:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ReportViewController *vc = [[ReportViewController alloc] initWithNibName:ReportViewController bundle:nil];
    vc.title = @"Reports";
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];
}

Если вы просто создаете представление по требованию с помощью выбора, это намного проще.

0 голосов
/ 11 августа 2011

Действительно ли ReportTypeViewController наследуется от UIViewController, или это UIView, как вы говорите, встроенный в IB?

navigationController pushViewContoller:animated: нужен UIViewController, а не UIView. В IB вы можете добавить UIViewController и переместить на него свой UIView или создать его программным способом.

...