在iphone SDK中选择的Popover行上关闭模态视图

时间:2013-01-08 11:06:43

标签: objective-c ios uisplitviewcontroller

我在Tapped按钮上显示模态视图。

在该视图中,我提出了一个新视图(额外视图)。在Extra视图中,我有UITableView&一个UIButton

当我点击那个按钮时,我在popOVer.Now中打开一个视图(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_View dismissModal]:无法识别的选择器发送到实例0xb494e10 2013-01-08 16:12:00.468 AFFeedsReader [3449:1d903] * 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因: ' - [Reader_View dismissModal]:无法识别的选择器发送到实例0xb494e10

3 个答案:

答案 0 :(得分:1)

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

@protocol DismissingDelegate

- (void) dismissextra;

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

初始化leftview时,将委托分配给显示模式的ViewController。

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

- (void) dismissextra {
     [self dismissModalViewControllerAnimated:YES];
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

请不要将通知用于简单任务,因为它消耗了大量资源...所以请始终使用任何可用的委托方法..无需真正需要在整个应用程序上收到通知..