невозможно добавить SubView - PullRequest
0 голосов
/ 19 января 2012

У меня есть этот метод в моем контроллере основного вида:

-(void)showDialog {    
    if (stopDialogController == nil)
        stopDialogController = [[StopDialogController alloc] initWithNibName:@"StopDialog" bundle:nil WithStop:@"CLAS"];
    if (stopDialogController)
        [stopDialogController presentWithSuperview:self.view withStopName:@"Evan Kimia"]; 
}

, который выполняется нормально, если я вызываю его из того же контроллера представления с помощью [self showDialog], но если я передаю указатель этогоОсновной класс к другому контроллеру представления это выполняется, но представление не добавляется как подпредставление контроллера основного представления, как это должно быть, и я понятия не имею, почему.Ниже представлен метод presentWithSuperview:

- (void)presentWithSuperview:(UIView *)superview withStopName:stopName;
{
    NSLog(@"present w/ superview called.");
    [superview addSubview:self.view];
    stopNameLabel.text=stopName;

}

1 Ответ

0 голосов
/ 21 января 2012

Я сделал небольшой пример проекта и не могу воспроизвести проблемы, с которыми вы столкнулись.В моем минимальном проекте у меня есть 3 контроллера представления: MainViewController, SecondViewController и ThirdViewController.Я вставлю соответствующие методы ниже, пожалуйста, проверьте различия между вашим проектом и этим примером, также было бы неплохо опубликовать больше кода.

MainViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    ThirdViewController *thirdViewController = [[ThirdViewController alloc] init];
    thirdViewController.mainViewController = self;
    [thirdViewController showDialogIndirect];
}

-(void)showDialog {    
    if (secondViewController == nil)
        secondViewController = [[SecondViewController alloc] initWithNibName:nil bundle:nil WithStop:@"CLAS"];
    if (secondViewController)
        [secondViewController presentWithSuperview:self.view withStopName:@"Evan Kimia"]; 
}

SecondViewController

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil WithStop:(NSString *)stopString {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if(self){
        // init here
    }
    return self;
}

-(void)presentWithSuperview:(UIView *)superView withStopName:(NSString *)stopName {
    NSLog(@"present %@ with superview %@ and stopName %@", self, superView, stopName);
    self.view.backgroundColor = [UIColor redColor];
    [superView addSubview:self.view];
}

ThirdViewController

-(void) showDialogIndirect {
    [self.mainViewController showDialog];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...