0

好的,

我已经阅读了一些关于此的问答,但我需要能够将它与我的代码联系起来,但我没有成功,我希望有人能帮助我:-)

我有一个填充了 NSMUtableArray 的 UITableViewController。

我想链接到每个条目,然后在其中包含 UIWebView 的 DetailViewController 中显示该 URL。

现在我有了将字符串从一个 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,但这并不顺利,因为需要先设置链接,然后才能使用它,而不是直接传递它。

任何帮助都会很棒:-)

4

1 回答 1

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];
    }
}
于 2012-06-08T11:32:54.027 回答