有兩種解決方案,我知道這一點。一種方法是將彈出通知發送到根控制器,並應用必要的代碼更新handleNotification
方法中的tableView。
另一個我個人使用的是爲popover設置一個委託協議。你必須將其設置是這樣的:
@protocol PopoverDelegate
- (void)addNewCell; // you can add any information you need to pass onto this if necessary such as addNewCellWithName:(NSString *)name, etc.
@end
@interface MyPopoverViewController..... {
id <PopoverDelegate> delegate;
// the rest of your interface code;
}
@property (nonatomic, retain) id delegate;
// any other methods or properties;
@end
然後在你的根視圖控制器頭文件,你需要添加委託
@interface RootViewController .... <PopoverDelegate> {
然後在你的根視圖控制器實現文件,在實例化時分配彈出窗口委託。例如:
MyPopoverViewController *vc = [[MyViewController alloc] init];
vc.delegate = self; // this is where you set your protocol delegate
myPopover = [[UIPopoverController alloc] initWithContentViewController:vc];
myPopover.delegate = self;
[vc release];
最後,你會在某個地方在代碼
- (void)addNewCell {
// do what you want with the tableView from here
}
對不起,這是一個有點長添加協議方法。我只是想確保我徹底。希望它有幫助
我想這將取決於你的表視圖的數據源。如果你在iPhone上使用模態視圖來做同樣的事情,它應該與iPad上的彈出窗口類似。 – BoltClock 2011-05-19 20:38:38
是的,這將與模態觀點一樣..問題是如何?當你說它取決於數據源時,這是什麼意思?我希望能夠從popover中做insertRowsAtIndexPath ..這是主要目標。 – aherlambang 2011-05-19 20:48:17