我正在为我的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