在没有segue的情况下从FPPopover设置委托

时间:2015-04-23 14:55:57

标签: ios objective-c delegates nsnotificationcenter

我正在开发一款iPhone应用程序,该应用程序使用FPPopover,这是一个在iPhone上启用弹出窗口的开源库。我让我的PopoverTVC显示了我想要的内容,但是我无法弄清楚如何将SavedPOITableViewController设置为PopoverTVC的代表而没有segue。

FPPopover

SavedPOITableViewControllerPopoverTVC

打开UIBarButtonItem

我是否应该使用代理人,或者我应该在SavedPOITVC NSNotification上设置viewDidLoad来监听更改并在PopoverTVC时发布通知myVariable已更新?

以下是我的SavedPOITableViewController实例化我的popover的方式:

- (IBAction)filterButtonPressed:(UIBarButtonItem *)sender {
    // The view controller you want to present as a popover
    UIBarButtonItem *buttonItem = sender;
    UIView *buttonView = [buttonItem valueForKey:@"view"];
    PopoverTableViewController *categoryList = [[PopoverTableViewController alloc]init];
    FPPopoverController *popover = [[FPPopoverController alloc]initWithViewController:categoryList];
categoryList.delegate = self; // this doesn't work

    [popover setArrowDirection:FPPopoverArrowDirectionUp];
    [popover presentPopoverFromView:buttonView];    
}

我知道这听起来非常愚蠢,但它让我感到困扰的时间超过了我承认的时间。

当我尝试设置委托时,我收到此错误:

    Assigning to 'id<PopoverTableViewControllerDelegate>' from 
incompatible type 'SavedPOITableViewController *const __strong'

1 个答案:

答案 0 :(得分:0)

我的PopoverTVC没有故事板。我没有费心去买一个,因为它已经在它上面了#34;。我在接口构建器上抛出了一个孤立的TableViewController,将其类指定为PopoverTVC,并且尽管有警告,我仍然委托代表工作。

我不明白为什么它可以添加一个孤立的故事板,但它之前没有代码。如果有人能够解释,我很乐意听到解释。