好的,
我已经阅读了一些Q& A's,但是我需要能够将它与我的代码联系起来并且我没有成功,我希望有人能够帮助我: - )
我有一个用NSMUtableArray填充的UITableViewController。
我想链接到每个条目,然后将该URL显示在包含UIWebView的DetailViewController中。
现在我有了将一个字符串从一个VC传递到另一个VC的想法,但这似乎不起作用。
这是我在第一个TVC中的相关代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
int currentindex = [indexPath row];
switch (currentindex) {
case 0:
_urlAddress = @"http://localhost:8888/thePalmsMenu/breakfast_menu.php";
break;
case 1:
_urlAddress = @"http://localhost:8888/thePalmsMenu/lunch_menu.php";
break;
default:
break;
}
webVC *sView = [[webVC alloc] init];
sView.urlAddress = _urlAddress;
[self.navigationController pushViewController:sView animated:YES];
}
然后我在第二个视图控制器中有这个,其中包含UIWebView。
-(void)viewDidLoad
{
_vc.urlAddress = _urlAddress;
NSURL *url = [NSURL URLWithString:_urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
}
现在也在代码显示我正在进行推送导航,但这不起作用 - 如果我嵌入第一个视图然后我得到一个错误,说我不能推动该视图两次,所以他们必须相关
这是错误消息:
2012-06-08 22:23:28.965 menu_test [68491:f803]嵌套推送动画可导致导航栏损坏 2012-06-08 22:23:29.447 menu_test [68491:f803]在意外状态下完成导航过渡。导航栏子视图树可能已损坏。 2012-06-08 22:23:29.449 menu_test [68491:f803]非平衡调用开始/结束外观转换。
现在即使这些似乎是2个问题,但它们肯定是相关的。
此外,我尝试过使用NSUserDefaults,但这并不顺利,因为在我可以使用之前需要设置链接,而不是直接传递它。
任何帮助都会很棒: - )
答案 0 :(得分:1)
发生的事情是你真的推动了两次视图控制器,第一次来自故事板推送序列,第二次来自代码,
你有2个解决方案 我会写下最简单的(如果你还需要第二个,请问)
您需要传递prepareForSegue
方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"TheIdentifierOfYourDetailView"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
int currentindex = [indexPath row];
switch (currentindex) {
case 0:
_urlAddress = @"http://localhost:8888/thePalmsMenu/breakfast_menu.php";
break;
case 1:
_urlAddress = @"http://localhost:8888/thePalmsMenu/lunch_menu.php";
break;
default:
break;
}
[[segue destinationViewController] setUrlAddress:_urlAddress];
}
}