我正在爲我的iPad
的splitView
應用程序工作。我實施了UIButton
,名爲Upload
。點擊它,UITableView
出現在UIPoverController
內。在點擊任何內容時,我想在UIDetailView
的UIwebView
中顯示一些相應的網站。爲此,我實施了delegate method protocol
。我已經使用的下列代碼行中UploadTableViewController.h
文件::委託方法協議不工作 - 目標C
@protocol UploadTableViewDelegate <NSObject>
@required
- (void)selected:(NSString *)his;
@end
@interface UploadSpaceTableViewController : UITableViewController{
id<UploadSpaceTableViewDelegate> delegate;
}
@property (retain) id delegate;
@end
在我在.m
文件類的使用的代碼::
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (delegate != nil) {
NSString *hisSelected = [keys objectAtIndex:indexPath.row];
NSLog(@"%@ lolwa", hisSelected);
[delegate selected:hisSelected];
}
}
以下行相應.m
文件,其中我已經實現的功能Selected
,代碼::
- (void)selected:(NSString *)Key {
NSLog(@"hello");
[self.UploadSpaceTableViewPopover dismissPopoverAnimated:YES];
}
-(IBAction)uploadpressed:(id)sender{
Upload.delegate = self;
self.Upload = [[UploadSpaceTableViewController alloc]
initWithStyle:UITableViewStylePlain];
self.UploadTableViewPopover = [[UIPopoverController alloc]
initWithContentViewController:UploadSpace];
[self.UploadTableViewPopover presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
但是,我無法得到hello
(令狀十個在函數Selected
)NSLogged
在gdb中。這是我第一次使用這個delegate method protocol
。我無法解決這個問題。有人可以幫我嗎 ?感謝致敬。
在聲明中,委託方法被稱爲'Selected',但實際上你調用'keySelected'? – trojanfoe
在你的委託中.h:你是否聲明它符合'UploadTableViewDelegate'?你有沒有像'uploadSpaceTVC.delegate = self'一樣在代理.m中設置你的委託? – Pfitz
@Pfitz ..不..我應該在哪裏解除它?在'viewDidLoad'方法?? – kamalbhai