我试图使用Segue从一个视图控制器传递一个Integer值到另一个视图控制器。我用这个帖子来帮助我: Passing Data between View Controllers
所以我按照顶部问题中的步骤,在接收信息标题的视图控制器中声明了我的整数,并同样将该标头导入到发送信息标题的视图控制器中。 我创建了一个模态segue,我虽然都会创建整数的值并呈现第二个视图控制器。它只呈现第二个视图控制器。另外,当我关闭我的应用程序时,它冻结了我的整个手机!
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"useCheat"]){
begin *controller = (begin *)segue.destinationViewController;
// I get a warning report here that says, "unused variable 'controller'". I could not figure out a fix.
if (codeForAllActive == YES) {
score = 10;
}
else if (codeForOneActive == YES) {
score = 9999975;
}
}
}
如您所见,useCheat是segue标识符。 begin是接收信息的视图控制器。 (信息是分数的值)。 得分值在开始时不会改变。
如果我改为:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"useCheat"]){
begin *controller = (begin *)segue.destinationViewController;
if (codeForAllActive == YES) {
controller.score = 10;
}
else if (codeForOneActive == YES) {
controller.score = 9999975;
}
}
}
我在controller.score
收到的错误是:在对象类型begin上找不到属性得分。
所以在begin.h(begin是目标VC)中我创建了一个得分属性:
@property(strong,nonatomic) NSInteger score;
一旦我这样做,我就会收到这个错误:程序中意外的'@'。 我拿出'@'并得到另一个错误:缺少参数分数。
答案 0 :(得分:0)
请尝试关注code
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
SecondViewController * secondVC = (SecondViewController *) segue.destinationViewController;
secondVC.intVariable = 10;
}
答案 1 :(得分:0)
试试这个:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"useCheat"]){
begin *controller = (begin *)segue.destinationViewController;
// I get a warning report here that says, "unused variable 'controller'". I could not figure out a fix.
if (codeForAllActive) {
controller.score = 10;
} else if (codeForOneActive) {
controller.score = 9999975;
}
}
}
@rdelmar指出来,在 destinationViewController 中将得分声明为NSInteger属性
@property(strong,nonatomic)NSInteger score;
答案 2 :(得分:0)
检查出来:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"useCheat"]){
begin *controller = (begin *)segue.destinationViewController;
if (codeForAllActive == YES) {
controller.score = 10;
}
else if (codeForOneActive == YES) {
controller.score = 9999975;
}
}
}