【发布时间】: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