将数据从一个视图传递到另一个视图(故事板、iOS)
这就是我目前得到的。 mainview.m将数据从一个视图传递到另一个视图(故事板、iOS),ios,objective-c,storyboard,Ios,Objective C,Storyboard,这就是我目前得到的。 mainview.m -(void)prepareForSegue:(UIStoryboardSegue *)segue sender(id)sender { secondView *secView = [segue destinationViewController] secView.ext = @".com"; } secondView.h @interface secondView : UIViewController { NSString *ext; } @pr
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender(id)sender {
secondView *secView = [segue destinationViewController]
secView.ext = @".com";
}
secondView.h
@interface secondView : UIViewController {
NSString *ext;
}
@proper (nonatomic, retain) NSString *ext;
@end
secondView.m
-(void)viewDidLoad {
NSString *url = [@"www.google" stringByAppendingFormat:ext]
}
它返回一个错误,表示ext为null。。。我做错了什么?您是否尝试将ext转换为属性?我的理解是“点”符号本质上是将代码转换为
[secView setExt:@".com"]
因此,将SecondView.h转换为
@interface secondView : UIViewController
@property (nonatomic, copy) NSString *ext;
@end
别忘了在你的.m文件中@synthesis它你试过把ext变成一个属性吗?我的理解是“点”符号本质上是将代码转换为
[secView setExt:@".com"]
因此,将SecondView.h转换为
@interface secondView : UIViewController
@property (nonatomic, copy) NSString *ext;
@end
不要忘记在.m文件中@synthesis它检查以下内容:
@ext代码>位于SecondView.m中
prepareforsgue:sender
方法调用SecondView(即,SecondView不会被代码中的其他地方调用pushViewController:animated
)@ext代码>位于SecondView.m中
prepareforsgue:sender
方法调用SecondView(即,SecondView不会被代码中的其他地方调用pushViewController:animated
)在行上放置断点:
secView.ext = @".com";
并确保分配后正确设置了ext
ivar。如果不是,您可能指定访问者在@synthesis
指令中为ext
使用不同的ivar,或者您可能提供了一个setter-setExt:
未正确设置ivar
如果赋值后正确设置了
ext
,则可能有两个不同的secondView
实例。当人们使用.xib文件时,经常会发生这种情况——他们会在代码中创建一个视图控制器,并在.xib文件中创建同一类的另一个实例。我不希望出现这种情况,因为您直接从segue获取secView
,但这值得考虑。在线路上设置一个断点:
secView.ext = @".com";
并确保分配后正确设置了ext
ivar。如果不是,您可能指定访问者在@synthesis
指令中为ext
使用不同的ivar,或者您可能提供了一个setter-setExt:
未正确设置ivar
如果赋值后正确设置了
ext
,则可能有两个不同的secondView
实例。当人们使用.xib文件时,经常会发生这种情况——他们会在代码中创建一个视图控制器,并在.xib文件中创建同一类的另一个实例。我不希望出现这种情况,因为您直接从segue获得了secView
,但值得考虑。有两种视图:view1和view2
- 在view1.h中添加view2.h文件
- 初始化view2的对象并设置其变量
- 在view1.h中添加view2.h文件
- 初始化view2的对象并设置其变量