【问题标题】:Can't reload PFQueryTableViewController as a container view无法将 PFQueryTableViewController 作为容器视图重新加载
【发布时间】:2014-08-25 02:28:18
【问题描述】:

我有一个弹出视图,我也添加了一个 PFQueryTableViewController 作为 childviewController。我在弹出框上有一个按钮,当按下它时,应该重新加载 PFQueryTableViewController 中的 tableview。

下面是 buttonPressed 方法中应该执行此操作的代码:

NotificationsTableViewController *note = (NotificationsTableViewController *)self.childViewControllers[0];
[note loadObjects];
[note.tableView reloadData];

不过,表格并没有重新加载,我可以让它重新加载的唯一方法是实例化一个全新的控制器并将其添加到弹出框,这不是我最终想要做的事情。

这里还有一些代码:

//NotificationsPopoverController

@class NotificationsTableViewController;

@protocol PopDelegate <NSObject>

-(void) changedQue;
@end

@interface NotificationsPopoverController : PDPopoverController

@property (nonatomic, assign) id<PopDelegate>  myDelegate;

@property NotificationsTableViewController *noti;

当我的按钮被按下时,我调用 [self.myDelegate changedQue];

//NotificationsTableViewController.h

@interface NotificationsTableViewController : PFQueryTableViewController <PopDelegate>

//NotificationsTableViewController.m

-(void)changedQue
{
    NSLog(@"Did it work?");

    [self.tableView reloadData];
    [self loadObjects];

}

日志语句由于某种原因没有打印出来,不知道为什么...

【问题讨论】:

  • 您能添加更多代码吗?可能会粘贴整个视图控制器的代码。
  • 哪个视图控制器?
  • 没关系。您不能通过创建另一个实例并调用 reloadData 来重新加载 NotificationsTableViewController 中的 tableview。它在 iOS 中无法以这种方式工作。您将不得不使用委托在另一个 viewController 中重新加载 tableView。
  • 我已经尝试过了,但是由于某种原因,在子视图控制器中没有调用委托方法。我将使用此代码编辑我的帖子...
  • 在两个视图控制器上添加您的委托方法代码,我会看看如何进一步帮助您。

标签: ios cocoa-touch parse-platform reload pfquery


【解决方案1】:

我还没有完全理解流程。我认为您必须在某个地方添加self.note.myDelegate = self;。嗯...我认为您错误地实施了委托。你能在两个视图控制器上粘贴更完整的代码吗?

按照 Jacob 的说法,在子视图 noti 解决问题之后添加 self.myDelegate = self.noti;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    相关资源
    最近更新 更多