Показать другой вид с IBAction - XIB и раскадровка - PullRequest
0 голосов
/ 09 ноября 2011

Я успешно использую раскадровку. Один экран не «пустой», у него есть класс NotifierViewController.

Этот класс имеет файлы .h, .m и XIB. Приложение прекрасно работает.

Теперь мне нужна кнопка в файле XIB, чтобы связать это представление с моей раскадровкой. Прямо сейчас мне нужно остановить и перезапустить приложение, чтобы увидеть основной вид.

Итак, в IB я создал UIButton и IBAction в файлах .h и .m. Но мой код для действий не работает. Я получаю только черный экран.

Представление, которое является «Первоначальным контроллером представления» в моей раскадровке, имеет класс ViewController (только для файлов .h и .m)

Что не так?

#import "NotifierViewController.h"
#import "ViewController.h"

- (IBAction)home:(id)sender {
    NSLog(@"Button was tapped");
    // init & alloc - Replace with your custom view controllers initialization method (if applicabale)
    ViewController *viewController = [[ViewController alloc] init];
    [viewController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentViewController:viewController animated:YES completion:NULL];
    [ViewController release];
}

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Вы не должны повторно инициализировать и представлять ваш основной «корневой» вид.Если вы представляете этот NotifierViewController представлен модально, вы можете просто отклонить его:

- (IBAction)home:(id)sender {
    [self dismissModalViewControllerAnimated:Yes];
}

Если NotifierViewController не представлен модально, дайте мне знать, как, и я отредактирую свой ответ.

0 голосов
/ 10 мая 2012
- (IBAction)home:(id)sender 
{

    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController* initialHelpView = [storyboard instantiateInitialViewController];

    initialHelpView.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentModalViewController:initialHelpView animated:YES];
}
...