ModalViewController не отображается при нажатии кнопки - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть этот ViewController с UIButton.Эта кнопка запускает метод, и это должно представить modalVC вместо него.И все же по какой-то причине он больше не работает.Я использовал тот же код раньше без каких-либо проблем, но все же он меня беспокоит.

-(void)showModalVC //the method that's being fired by the button.
{
    NSLog(@"modalVC to create a table"); //this log is being printed so the button fires as proper.

    self.myModalVC = [[MyModalViewController alloc] init]; //a local var gives same results.

    self.myModalVC.dismissDelegate = self; //the delegate is handled as proper.

    UINavigationController *navController = [[UINavigationController alloc]
                                             initWithRootViewController:self.myModalVC];

    //navController.modalPresentationStyle = UIModalPresentationFormSheet;

    [self presentModalViewController:navController animated:YES];

    [self.myModalVC release];
    [navController release];
}

В чем может быть причина того, что ModalVC не может перейти к моему текущему представлению, откуда бы оно ни вызывалось?

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

Если у вас есть идея.разместите это здесь.Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 января 2012
-(void)showModalVC
{
    self.myModalVC = [[ModalVC alloc] init];

    self.myModalVC.dismissDelegate = self;

    UINavigationController *navController = [[UINavigationController alloc]
                                             initWithRootViewController:self.myModalVC];

    navController.modalPresentationStyle = UIModalPresentationFormSheet; //or something similar, this one is used on an iPad

    UILabel *navTopItemTitle = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 44)];
    navTopItemTitle.text = @"Modal shizzle";
    navTopItemTitle.backgroundColor = [UIColor clearColor];
    navTopItemTitle.textColor = [UIColor whiteColor];
    navTopItemTitle.textAlignment = UITextAlignmentCenter;

    [navController.navigationBar.topItem setTitleView:navTopItemTitle];

    [self presentModalViewController:navController animated:YES];

    [self.addTabViewController release];
    [navController release];
}

Проблема решена.

0 голосов
/ 04 ноября 2011

Первое, о чем я подумал, это то, что вы создаете утечку объекта в этой строке:

self.myModalVC = [[MyModalViewController alloc] init];

selfсохранит myModalVC, alloc также сохранит его, и вы, вероятно, выпускаете его только в методе dealloc.Но, глядя на то, как вы используете себя.префикс, может быть, у вас есть проблемы с памятью где-то еще в вашем приложении?Попробуйте прочитать о свойствах и методах доступа.

...