我正在尝试将Flipside View控制器添加到项目中的现有视图中。我拖动了一个常规视图视图控制器,并将seugue命名为popover。这是我的FlipSideView控制器的标题的定义
@class InfoViewController;
@protocol InfoViewControllerDelegate
- (void)infoViewControllerDidFinish:(InfoViewController *)controller;
@end
@interface InfoViewController : UIViewController
@property (weak, nonatomic) id <InfoViewControllerDelegate> delegate;
- (IBAction)done:(id)sender;
@end
我在主视图控制器上实现了以下方法来影响切换
- (void)infoViewControllerDidFinish:(InfoViewController *)controller
{
[self.infoPopoverController dismissPopoverAnimated:YES];
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
self.infoPopoverController = nil;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showAlternate"]) {
[[segue destinationViewController] setDelegate:self];
UIPopoverController *popoverController = [(UIStoryboardPopoverSegue *)segue popoverController];
self.infoPopoverController = popoverController;
popoverController.delegate = self;
}
}
- (IBAction)togglePopover:(id)sender
{
if (self.infoPopoverController) {
[self.infoPopoverController dismissPopoverAnimated:YES];
self.infoPopoverController = nil;
} else {
[self performSegueWithIdentifier:@"showAlternate" sender:sender];
}
}
这是我的MainViewController的标题
#import <UIKit/UIKit.h>
#import "InfoViewController.h"
@interface LandingViewController : UIViewController <InfoViewControllerDelegate, UIPopoverControllerDelegate>
@property (strong, nonatomic) UIPopoverController *infoPopoverController;
@end
没有任何事情,popover没有通过。在同一个ViewController上存在多个segue的问题。因为我已经有一个自动segue由同一个ViewController上的按钮触发。
答案 0 :(得分:0)
想出问题,我没有从按钮触发segue。那么文档说,对于FlipSideView,按钮不会触发segue,因此我从一个视图控制器拖放到另一个视图控制器并挂钩切换方法。 一旦我用按钮连接了segue,一切似乎都运转良好。