Ios 通过prepareForSegue传递数据可以在模拟器上工作,但不能在设备上工作
我有以下代码将URL传递给加载URL的目标控制器 StoreURLViewController.mIos 通过prepareForSegue传递数据可以在模拟器上工作,但不能在设备上工作,ios,Ios,我有以下代码将URL传递给加载URL的目标控制器 StoreURLViewController.m -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([segue.identifier isEqualToString:@"continueToStore"]) { StoreWebViewController *controller = (StoreWebViewCont
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"continueToStore"])
{
StoreWebViewController *controller = (StoreWebViewController *)segue.destinationViewController;
NSString *url = self.storeUrl.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:url forKey:@"storeUrl"];
[defaults synchronize];
controller.storeUrl = [StoreUrlViewController checkAndPrependProtocolForApiUrl:url];
NSLog(@"%@", controller.storeUrl);
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",self.storeUrl);
if (self.storeUrl != nil)
{
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[StoreWebViewController checkAndPrependProtocolForUrl:self.storeUrl]]]];
self.webView.delegate = self;
}
}
我有下面的代码来检查它是否有url并加载web视图
StoreWebViewController.m
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"continueToStore"])
{
StoreWebViewController *controller = (StoreWebViewController *)segue.destinationViewController;
NSString *url = self.storeUrl.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:url forKey:@"storeUrl"];
[defaults synchronize];
controller.storeUrl = [StoreUrlViewController checkAndPrependProtocolForApiUrl:url];
NSLog(@"%@", controller.storeUrl);
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",self.storeUrl);
if (self.storeUrl != nil)
{
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[StoreWebViewController checkAndPrependProtocolForUrl:self.storeUrl]]]];
self.webView.delegate = self;
}
}
在模拟器上,URL是一个字符串并加载网页,但在设备上它是零且不加载网页
用于输入的设备输出
模拟输出
我对storeUrl的引用很弱。我将其更改为strong,现在它可以在模拟器和设备中工作。检查
视图中的值将出现。然后设置好了吗?您的设备运行的是比模拟器更旧的iOS版本吗?Views中的任何内容都不会出现。请同时检查segue标识符。在实际设备要求非常严格的情况下,模拟器倾向于稍微容忍一些变化。确保它在脚本中指定为continueToStore
,而不是类似continueToStore
的内容。如果segue标识符与continueToStore
不匹配,我还建议使用NSLog
在else语句中转储它。