最初に、これに関するすべてのスタック オーバーフローの質問を見てきましたが、どれも役に立たなかったので、自分で始めようと思いました。
問題: 他の多くの質問と同じように、このポップオーバーを選択すると閉じることができません。
違い: 彼らの方法のすべてがうまくいかなかった.
それでは、コードを見てみましょう:
私のテーブルビュー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?");
}
次に、メイン ビュー 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)。