1

编辑:解决了。看到我的评论为什么..对不起这个烂摊子,我自己还不能作为新手发布答案..

iPad App:我有一个表格视图,并从附件视图实例化一个带有另一个表格视图的弹出框。在弹出窗口中,我想选择一个单元格并将该索引传递回 rootView。

我在 PopoverController 中实现了一个协议,并使 RootViewController 符合它。

为什么没有调用根视图中的 backPopover 方法?

任何提示非常感谢!

编辑:该故事板参考指向导航控制器。弹出框本身工作正常..

RootViewController.h

#import "PopoverViewController.h"


@interface rootViewController : UITableViewController <UIPopoverControllerDelegate, UITableViewDelegate, AddDelegate>
{
    UIPopoverController *popOverController;
}

@property (nonatomic, retain) UIPopoverController *popOverController;
@property (nonatomic) PopoverContent *popoverContent;

根视图.m

-(void) backPopover:(int)index
{
    NSLog(@"index sent:%i", index);
    [popOverController dismissPopoverAnimated:YES];
}


// accessoryView Button
- (void) popOver:(UIButton*)paramSender
{
    UITableViewCell *cell = (UITableViewCell*)paramSender.superview;
    if (cell != nil)
    {

        //Table position for popover
        UIButton *button = (UIButton *)cell.accessoryView;

            if(![self popoverContent])
            {
                popoverContent = [[self storyboard]instantiateViewControllerWithIdentifier:@"PopoverContent"];
                [popoverContent setDelegate:self];
                popOverController = [[UIPopoverController alloc]initWithContentViewController:popoverContent];
                popOverController.popoverContentSize = CGSizeMake(320.0, 600.0);
                [popOverController setDelegate:self];
            }

        CGRect rect = button.frame;
        [popOverController presentPopoverFromRect:rect inView:cell permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
}

弹出控制器.h

@protocol AddDelegate <NSObject>

- (void)backPopover: (int)index;

@end

@property (nonatomic, weak) id <AddDelegate> delegate;

弹出控制器.m

@synthesize delegate;


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    [self.delegate backPopover:indexPath.row];

}
4

2 回答 2

0

请试试这个。

MyViewController *viewController=[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
UIPopoverController* aPopover = [[UIPopoverController alloc]
                        initWithContentViewController:popupController];
于 2013-05-06T20:19:13.050 回答
0

问题在于情节提要参考,它实际上指向了一个导航控制器。上面的代码就像一个魅力。

于 2013-05-24T17:14:12.120 回答