我有一个popover视图,我也添加了一个PFQueryTableViewController,作为childviewController。我在弹出窗口上有一个按钮,当按下时,应该在PFQueryTableViewController中重新加载tableview。
以下是buttonPressed方法中应该执行此操作的代码:
NotificationsTableViewController *note = (NotificationsTableViewController *)self.childViewControllers[0];
[note loadObjects];
[note.tableView reloadData];
但是这个表没有重新加载,我可以让它重新加载的唯一方法是实例化一个全新的控制器并将其添加到popover中,这不是我想要的结果。
以下是一些代码:
// 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];
}
由于某种原因,不打印日志语句,不确定原因......
答案 0 :(得分:0)
我还没完全理解这个流程。我认为在某处您必须添加self.note.myDelegate = self;
。嗯......我认为你已经错误地实施了委托。可以在视图控制器上粘贴更完整的代码。
根据Jacob,在子视图 noti 解决问题后立即添加 self.myDelegate = self.noti; 。