私はポップオーバーを使用しています。ポップオーバー内にはuitableviewが含まれており、uitableviewをタップすると値を取得したいので、内部にデリゲートを作成します。
popover.h
@class PopOverVCDelegate;
@protocol PopOverVCDelegate <NSObject>
-(void)getValue:(int)value;
@end
@interface ..
{
@property(nonatomic)id<PopOverVCDelegate> delegate;
}
@end
popover.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.delegate getValue:[indexPath row]];
}
メインクラスの受信デリゲートは
mainclass.h
#import "PopOverVC.h"
@interface MainClassVC : UIViewController<PopupCatchupVCDelegate,UIPopoverControllerDelegate>
{}
mainclass.m
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showPopover"])
{
[[segue destinationViewController] setDelegate:self];
UIPopoverController *p = [(UIStoryboardPopoverSegue *)segue popoverController];
p.popoverBackgroundViewClass = [CustomPopoverBackground class];
self.popoverController = p;
popoverController.delegate = self;
}
}
-(void)getValue:(int)value
{
NSLog(@"adsf-%d",value);
}
デリゲートから値を取得しません。誰かが私を助けてくれます。私はストーリーボードを使用して、プッシュナビゲーションからポップオーバーを呼び出します。