我是Objective-c和stackOverflow的新手。 :)
我创建了两个视图控制器,它们通过名为“showDetailSegue”的segue连接。
在LPLviewcontroller1中,我有一个句子属性,我用它在LPLviewcontroller1的textview中设置文本,我想用segue来设置LPLviewcontroller中的sentence属性值。此外,我在LPLviewcontroller上有一个按钮,可以执行“showDetailSegue”。
然而,程序在
处停止 int main(int argc, char * argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([LPLAppDelegate class]));
(program breaks here)
}
}
系统日志
2014-06-25 16:49:43.199 test[6322:60b] -[LPLViewController button:]: unrecognized selector sent to instance 0x8d43f30
2014-06-25 16:49:43.204 test[6322:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[LPLViewController button:]: unrecognized selector sent to instance 0x8d43f30'
这是LPLviewController.m
#import "LPLViewController.h"
#import "LPLViewController1.h"
@interface LPLViewController ()
@end
@implementation LPLViewController
- (IBAction)press:(id)sender {
[self performSegueWithIdentifier:@"showDetailSegue" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showDetailSegue"]){
LPLViewController1 *controller = (LPLViewController1 *)segue.destinationViewController;
controller.sentence = @"dfjlasdkfjlskdfjlksdjflkadsjf";
}
}
@end
这是LPLviewController1.m
#import "LPLViewController1.h"
@implementation LPLViewController1
-(void) viewDidLoad
{
_text.text = _sentence;
}
@end
答案 0 :(得分:0)
不是100%肯定没有看到头文件,但从例外情况来看,听起来你没有定义属性“句子”。
答案 1 :(得分:-1)
你需要在LPLViewController1.h头文件中使用它:
@property (nonatomic, strong) NSString *sentence
然后在LPLViewController1实现中使用self.sentence
来访问该值。 prepareForSegue:sender
方法很好。但这是非常基本的Objective C东西......