当我的模态视图被解除时,当我尝试从rootViewController中的UITableView重新加载数据时,我无法使用Protocols / Delegates。
以下是我的模态视图.h文件中的一些代码:
@protocol LoginWebViewDelegate <NSObject>
-(void) updateFromModalView;
@end
@interface myModalView : UIViewController{
id<LoginWebViewDelegate> loginDelegate;
..
}
@property (nonatomic, assign) id<LoginWebViewDelegate> loginDelegate;
..
-(IBAction)dismiss;
..
在我的.m文件中,我合成了loginDelegate&amp;我实施了解雇行动&amp;当我按下按钮时它被激活。
-(IBAction) dismiss
{
NSLog(@"Button Pressed!");
[loginDelegate updateFromModalView];
}
接下来在我的rootViewController的界面中,我添加了<LoginWebViewDelegate>
&amp;这是我实施中的行动:
-(void) updateFromModalView
{
[modalView dismissModalViewControllerAnimated:YES];
NSLog(@"Reloading Data");
[dataController readPlist];
[dataTable reloadData];
[dataTable beginUpdates];
[dataTable deleteSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:YES];
[dataTable insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:YES];
[dataTable endUpdates];
}
永远不会调用updateFromModalView方法。我错过了什么?
答案 0 :(得分:1)
您缺少(或尚未发布)您为loginDelegate
指定值的部分。你提到合成它但只创建存取方法,它没有设置值。
在代码中的某处,您需要一个如下声明:
self.loginDelegate = _something_;
或者,无论什么对象创建此视图控制器,在创建它之后但在呈现之前将自己或另一个对象设置为委托:
modalController = [[ModalController alloc] initWithNibName:@"ModalController];
modalController.loginDelegate = self;
[self presentModalViewController:modalController];