0

我在一个被点击的按钮上展示了一个模态视图。

在那个视图中,我创建了一个新视图(额外视图)。在额外视图中,我有一个UITableView& a UIButton

当我单击该按钮时,我在 popOVer 中打开一个视图(Leftview)。现在,我想在单击 leftView 的表行时关闭“Extraview”。

我的代码如下:

// Leftside view:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    [[NSNotificationCenter defaultCenter] postNotificationName:@"DismissModal"object:nil];

}

// Presented modal view.m


- (void)viewDidLoad
{

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissModal:) name:@"DismissModal" object:nil];
}


-(void)dismissModal:(NSNotification *)notif
{

   [self dismissViewControllerAnimated:YES completion:nil];

}

我的错误如下:

[Reader_ViewdismissModal]:无法识别的选择器发送到实例 0xb494e10 2013-01-08 16:12:00.468 AFFeedsReader[3449:1d903] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[Reader_ViewdismissModal]:发送了无法识别的选择器到实例 0xb494e10

4

3 回答 3

1

在您的“Leftview.h”中,执行以下操作

@protocol DismissingDelegate

- (void) dismissextra;

@end
@property (weak, nonatomic) id<DismissingDelegate>delegate;

初始化左视图时,将委托分配给显示模态视图的 ViewController。

在该控制器中,将其定义为“DismissingDelegate”,并实现以下方法:

- (void) dismissextra {
     [self dismissModalViewControllerAnimated:YES];
}
于 2013-01-08T11:38:46.277 回答
0

我通过实施发布通知解决了这个问题。

于 2013-01-10T09:23:29.400 回答
0

请不要将通知用于简单任务,因为它会消耗大量资源……所以请始终使用任何可用的委托方法……除非确实需要在整个应用程序上获取通知……

于 2013-01-10T10:44:00.453 回答