popoverControllerDidDismissPopover
メソッドをどこに配置し、どのように呼び出すかがわからないため、メソッドを呼び出すのに問題があります。
私は次のようにポップオーバーを作成しました-
// SettingsViewController.h
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import "ViewController.h"
#import "SharedData.h"
#import "PlayerPopUpVC.h"
@interface SettingsViewController : UIViewController <UITableViewDataSource, UIPopoverControllerDelegate> {
- (IBAction)popUp:(id)sender;
@property (strong, nonatomic) UIPopoverController *playerPopUpVC;
@property (strong, nonatomic) PlayerPopUpVC *popUp;
// SettingsViewController.m
#import "SettingsViewController.h"
- (IBAction)popUp:(id)sender {
UIButton *editPlayers = (UIButton *)sender;
if(self.playerPopUpVC) {
self.popUp= [[PlayerPopUpVC alloc] initWithNibName:@"PlayerPopUpVC" bundle:nil];
self.popUp=[[UIPopoverController alloc] initWithContentViewController:self.popUp];
}
[self.playerPopUpVC presentPopoverFromRect:[editPlayers frame] inView:[editPlayers superview] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
メソッドを呼び出すには、PopOverのデリゲートをselfに設定する必要があることはわかっていますが、コードが何であるかを理解できません。
私が試してみました -
self.playerPopUpVC.delegate=self
しかし、Xcodeはそれが好きではありません。
私のpopOverクラスは次のようになります-
// PlayerPopUpVC.h
#import <UIKit/UIKit.h>
@interface PlayerPopUpVC : UIViewController <UITableViewDataSource, UIPopoverControllerDelegate> {
}
// PlayerPopUpVC.m
#import "PlayerPopUpVC.h"
@interface PlayerPopUpVC ()
@end
- (void)viewDidLoad
{
[super viewDidLoad];
self.modalInPopover = NO;
self.contentSizeForViewInPopover = CGSizeMake(240, 400);
}
どんな助けでも大歓迎です。私は今それを分類しようとして一週間を過ごしました。