0
我很難調用popoverControllerDidDismissPopover
方法,因爲我不知道該把它放在哪裏以及如何調用它。如何調用'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];
}
我知道我必須把我的酥料餅自我的代表,以調用該方法,但不能工作的代碼是什麼。
我曾嘗試 -
self.playerPopUpVC.delegate=self
但Xcode中不喜歡它。
我酥料餅類看起來是這樣的 -
// 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);
}
任何幫助將是非常受歡迎的。我已經花了一個星期的時間嘗試對它進行分類。
嗨天使,感謝您的快速回復。我現在添加了popover類。是的,我知道我必須告訴代表使用解僱方法。那麼dimiss方法會進入委託類.m呢?另外,你說我錯誤地分配了上面的self.popUp。我在創建的彈出方法內創建彈出窗口外的彈出窗口。因此,它只會讓我將PlayerPopVC&popUp稱爲.self。有什麼想法嗎?謝謝保羅 – 2012-08-10 14:47:33
我更新了我的答案。查看它並請閱讀代理模式的工作原理,因爲您還沒有理解它。 – 2012-08-10 14:55:21
而且你不需要在你的PlayerPopUpVC中實現UIPopoverControllerDelegate,因爲它不是popover的委託! – 2012-08-10 14:56:46