Нажатие UIViewController дает сбой - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть следующий код, выдвигающий UIViewController.Этот код является целевым методом, который выполняется при нажатии UIButton:

-(void)pushNavigationController
{
    ParameterListerViewController *plvc = [[ParameterListerViewController alloc] init];    
    UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:plvc];    
    self.navigationController.navigationBarHidden = YES;
    plvc.numberOfParameters = [[numberOfTrialsField text] intValue];

    NSLog(@"about to push the navigation controller");

    [self.navigationController pushViewController:nvc animated:YES];
}

Он получает до оператора NSLog, но после этого контроллер представления никогда не выдвигается, а приложение просто падает.Вот заголовочный файл ParameterListerViewController:

ParameterListerViewController.h
-------------------------------
@interface ParameterListerViewController : UIViewController<UITextFieldDelegate>
{    
    UIScrollView* scrollView;
}
@property(nonatomic) NSInteger numberOfParameters;
@end

Вот заголовочный файл, который содержит UIButton и соответствующий целевой метод, который содержит код для нажатия контроллера навигации.

SettingsViewController.h
------------------------
@interface SettingsViewController : UIViewController <UITextFieldDelegate, UIPickerViewDelegate, UITableViewDelegate, UITableViewDataSource>
{   
    id <SettingsViewDelegate> delegate;
}
@end

И вот файл заголовка объекта класса, который НАЖИМАЕТСЯ:

@interface ItemViewController : UITableViewController 
{
}
@end

Есть предложения?

1 Ответ

0 голосов
/ 01 февраля 2012

Представление вашего контроллера Nav должно находиться в иерархии представлений.
Если контроллер Nav не установлен как rootViewController для UIWindow, его необходимо явно добавить.

Попробуйте это:

    [self.view addSubview:self.nvc.view];

Если это так, вам не нужно выполнять pushViewController - plvc уже будет виден.

...