将Flip Side View控制器添加到类中

时间:2014-02-23 11:06:17

标签: ios objective-c

我正在尝试将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上的按钮触发。

1 个答案:

答案 0 :(得分:0)

想出问题,我没有从按钮触发segue。那么文档说,对于FlipSideView,按钮不会触发segue,因此我从一个视图控制器拖放到另一个视图控制器并挂钩切换方法。 一旦我用按钮连接了segue,一切似乎都运转良好。