首先我要说的是,我已经查看过有关此问题的所有堆栈溢出问题,但没有人提供帮助所以我认为我会自己启动。
问题:如果像其他许多问题一样被选中,我不能忽略这个弹出窗口。
区别:他们所有的方式都没有用。
所以,让我们看一下代码:
在我的表视图controller.h中:
#import <UIKit/UIKit.h>
@protocol PopoverDelegate <NSObject>
-(void)didRowAtIndexPathIsSelected;
@end
@interface tableViewController : UITableViewController
@property (strong, nonatomic) id<PopoverDelegate> myPODelegate;
在我的表视图中,controller.m:
#import "tableViewController.h"
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[_myPODelegate didRowAtIndexPathIsSelected];
NSLog(@"IS it Gone?");
}
然后在我的Main View 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内部,它返回(null)。
答案 0 :(得分:0)
你必须在MainView类中设置你的委托,在那里你要分配tvController的对象:
tvController。 myPODelegate = self