0

首先让我说,我已经查看了有关此的所有堆栈溢出问题,但没有任何帮助所以我想我会开始自己的。

问题:就像许多其他问题一样,我无法在选择时关闭此弹出框。

区别:他们所有的方法都没有奏效。

那么,让我们看一下代码:

在我的表视图控制器.h 中:

#import <UIKit/UIKit.h>


@protocol PopoverDelegate <NSObject>

-(void)didRowAtIndexPathIsSelected;

@end


@interface tableViewController : UITableViewController

@property (strong, nonatomic) id<PopoverDelegate> myPODelegate;

在我的表视图控制器.m 中:

#import "tableViewController.h"

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [_myPODelegate didRowAtIndexPathIsSelected];
    NSLog(@"IS it Gone?");
}

然后在我的主视图 Controller.h

#import <UIKit/UIKit.h>
#import "tableViewController.h"

@interface MainView : UICollectionViewController <PopoverDelegate>

@property (nonatomic, strong) TableViewController *tvController;
@property (nonatomic, strong) UIPopoverController *tvPopover;

和主视图 Controller.m:

-(void)didRowAtIndexPathIsSelected
{

    NSLog(@"Dismissing now");
    [tvPopover dismissPopoverAnimated:YES];
    tvPopover = nil;
}

感谢所有帮助。

编辑:

我一直在尝试许多不同的调试想法并尝试过:

NSLog(@"%@", _myPODelegate);

在 didSelectRowAtIndexPath 里面它回来了(空)。

4

1 回答 1

0

您必须在分配 tvController 对象的 MainView 类中设置您的委托,以便:

电视控制器。myPODelegate = 自我

于 2013-08-05T03:51:12.077 回答