Я сделал небольшой пример проекта и не могу воспроизвести проблемы, с которыми вы столкнулись.В моем минимальном проекте у меня есть 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];
}