Использование кнопок UIB для открытия другого .nib - PullRequest
0 голосов
/ 08 июля 2011

что-то не работает правильно, и я не могу понять, почему это не работает для загрузки моего другого пера, это в настоящее время работает

#pragma mark - Flipside View

- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller
{
    [self dismissModalViewControllerAnimated:YES];
}

- (IBAction)showInfo:(id)sender
{    
    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil];
    controller.delegate = self;
    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];
}

пока я делал ту же самую вещь здесь на том же MainViewController.m и не добился успеха при этом

#pragma mark - News View

- (void)newsViewControllerDidFinish:(NewsViewController *)controller
{
    [self dismissModalViewControllerAnimated:YES];
}

- (IBAction)showNews:(id)sender
{    
    NewsViewController *controller = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
    controller.delegate = self;
    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];
}

так что я думаю, что что-то не так с моим заголовочным файлом, который выглядит так

    #import "FlipsideViewController.h"
#import "NewsViewController.h"

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, NewsViewControllerDelegate>

- (IBAction)showInfo:(id)sender;
- (IBAction)showNews:(id)sender;

@end

Я не могу понять, почему это не работает, любая помощь будет оценена.

Ошибка с выхода:

Этот GDB был настроен как "x86_64-apple-darwin". процесс 2147. 2011-07-08 12: 24: 09.845 Дэнни [2147: ef03] - [NewsViewController setDelegate:]: нераспознанный селектор отправлен в экземпляр 0x68a62b0 2011-07-08 12: 24: 09.847 Дэнни [2147: ef03] * Завершение приложения из-за неисследованного исключения NSInvalidArgumentException, причина: '- [NewsViewController setDelegate:]: нераспознанный селектор отправлен на экземпляр 0x68a62b0' * Первый вызов стека вызовов: (0xf8a600 0x112252e 0xf8d550 0xeeb4cf 0xeeb292 0x2a36 0xf8bd78 0x18cc5 0x18c5a 0xbdbd4 0xbe09d 0xbd368 0x3e004 0x3e22d 0x24990 0x181a7 0x1369886 0xf59d11 0xebbc9b 0xeba4b1 0xeb993c 0xeb9868 0x1367fef 0x13680b4 0x160c4 0x2009 0x1f75) прекратить называется бросать исключение общей библиотеки применить-загрузить-правила все Текущий язык: авто; в настоящее время цель-с (GDB)

Ответы [ 2 ]

0 голосов
/ 08 июля 2011

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

- (IBAction)showNews:(id)sender
{    
    NewsViewController *controller = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
    controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:controller animated:YES];
}

И в представлении новостей вместо записи

[self.delegate newsViewControllerDidFinish:self];

вы должны написать:

[self dismissModalViewControllerAnimated:YES];

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

0 голосов
/ 08 июля 2011

Каков метод делегата для контроллера представления? Проверьте, совпадает ли объявление метода делегата. Убедитесь, что вы правильно настроили делегатов

...