Мое приложение отключается из-за непризнанного селектора, отправленного с помощью segue. Я знаю, что это обычный вопрос в stackoverflow. Я пробовал все решения, но не смог пройти через это. Я думаю, что я что-то упустил. Мой текущий проект выбрасывает это исключение, но новый проект с этим же кодом не вызывает никаких исключений. Зачем ? Я попробовал как ниже фрагмент кода передать данные из FirstViewController в DetailViewController с помощью segue.Ошибка приложения из-за непризнанного селектора, отправленного на VC
В моем файле FirstViewController.h:
#import <UIKit/UIKit.h>
#import "DetailViewController.h"
@interface FirstViewController : UIViewController<UITableViewDataSource, UITableViewDelegate>
@end
В моем файле FirstViewController.m:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
//if ([segue.identifier isEqualToString:@"detail"]) {
DetailViewController *vc = (DetailViewController *)[segue destinationViewController];
vc.nameStr = @"Nuibb";
//}
}
В моем файле DetailViewController.h:
#import <UIKit/UIKit.h>
@interface DetailViewController : UIViewController
@property (nonatomic, strong) NSString *nameStr;
@end
В моей DetailViewController. м файл:
#import "DetailViewController.h"
@interface DetailViewController()
@property (weak, nonatomic) IBOutlet UILabel *label;
@end
@implementation DetailViewController
@synthesize nameStr;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.label.text = nameStr;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
И я получаю сообщение об ошибке в журнале -
2015-03-11 10:27:24.145 bdipo[1185:18722] -[UINavigationController setNameStr:]: unrecognized selector sent to instance 0x7fe928dad8c0
2015-03-11 10:27:24.147 bdipo[1185:18722] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UINavigationController setNameStr:]: unrecognized selector sent to instance 0x7fe928dad8c0'
Посмотрите на свой пункт назначения «destinationViewController» вашего segue. Вероятно, это не «DetailViewController», как то, к чему вы его придумали. –
может быть [segue destinationViewController] является UINavigationController, а не DetailViewController, поэтому у него нет свойства nameStr –
Фактически между FirstViewController и DetailViewController в моей раскадровке есть контроллер навигации. Теперь что мне делать? – Nuibb