1

編集:解決しました。なぜ私のコメントを参照してください..この混乱を申し訳ありませんが、初心者としてまだ自分で回答を投稿できません..

iPad アプリ: テーブル ビューがあり、accessoryView から別のテーブルビューでポップオーバーをインスタンス化します。ポップオーバーでセルを選択し、そのインデックスを 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;

RootView.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];
    }
}

PopoverController.h

@protocol AddDelegate <NSObject>

- (void)backPopover: (int)index;

@end

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

PopoverController.m

@synthesize delegate;


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

    [self.delegate backPopover:indexPath.row];

}
4

2 に答える 2