【问题标题】:navigating from detail view controller to table view controller从详细视图控制器导航到表视图控制器
【发布时间】:2013-05-09 19:57:56
【问题描述】:

我正面临着将数据正确加载到 uitableviewcontroller 的情况。我也将数据正确加载到详细视图控制器。

我在用什么:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"ShowPaymentDetails"])
    {
        DetailPaymentViewController *detailViewController = [segue destinationViewController];

        NSIndexPath *myIndexPath = [self.paymentsTableView indexPathForSelectedRow];

        detailViewController.payment = [arrayOfPayment objectAtIndex:[myIndexPath row]];
    }
}

我遇到的问题是,当我返回时(通过正常的拖放滑动),uitableviewcontroller 被重新加载。因为这会从网络服务中获取数据......我不想重新加载数据。

你能帮我解决这个问题吗?

提前谢谢。

【问题讨论】:

  • 从 viewdidappear 中移除 webservice 调用功能并将该代码放入 viewdidload..
  • 已经在viewdidload方法中
  • 一旦使用 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 推送到详细视图而不是 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id )发件人方法!!
  • 我对 segue 解决方案感到满意。我遇到的问题来自对面,从详细视图到列表视图。 ...这个改变会解决这个问题吗?
  • 我也遇到过这个问题,我想你先从 viewA 推送到 viewB,然后从 viewB 推送到 viewA。所以问题是你推送 2 次而不是推送然后弹出。你必须使用pop等价于prepareForSegue:你可以在nslog viewDidLoad时检查你是否推送了2次。

标签: iphone ios xcode uitableview detailview


【解决方案1】:

我猜你是从 DetailViewController 转到 TableViewController 的。我认为您创建了一个新的 TableViewController 而不是回到原来的那个。您可以在调试器中通过在 viewWillApear 中设置断点并查看 self 的值来检查这一点。

(lldb) po self
$0 = 0x1ddd2480

您应该在 DetailViewController 中执行此操作以返回 TableViewController。

[self.navigationController popViewControllerAnimated:YES];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多