2014-09-06 72 views
0

我使用彈出式按鈕來退出一個頁面回到根視圖控制器。我成功地回到了根視圖控制器,但彈出不退出。它保持根視圖控制器上這裏是我的代碼彈出不退出當我點擊按鈕註銷

POPOVERVIEW CONTROLLER.H 

@protocol MJSecondPopupDelegate; 


#import <UIKit/UIKit.h> 
#import "LoginViewController.h" 
#import "TimeTableViewController.h" 
@class TimeTableViewController; 
@interface PopOverViewController : UIViewController <UIPopoverControllerDelegate> 
{ 

// UIPopoverController *popoverController; 

} 
@property (assign, nonatomic) id <MJSecondPopupDelegate>delegate;//ede ga 
@property(strong,nonatomic) UIPopoverController *popoverController; 
@property(nonatomic,strong)TimeTableViewController *TimeObj; 
-(IBAction)logOut:(UIButton *)sender; 
@end 


@protocol MJSecondPopupDelegate<NSObject> 
@optional 
- (void)cancelButtonClicked:(PopOverViewController*)secondDetailViewController; 
@end 


POPOVERVIEW CONTROLLER.M 

#import "PopOverViewController.h" 

@interface PopOverViewController() 

@end 

@implementation PopOverViewController 
@synthesize delegate,TimeObj,popoverController; 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 
-(void)SignOut{ 
    NSLog(@"protocol"); 
} 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSLog(@"delegate value is %@",self.delegate); 

    // Do any additional setup after loading the view. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
-(IBAction)logOut:(UIButton *)sender{ 
    if (self.delegate && [self.delegate respondsToSelector:@selector(cancelButtonClicked:)]) 
    { 
     [self.delegate cancelButtonClicked:self]; 
     [self.popoverController dismissPopoverAnimated:YES]; 

    } 
    } 


MAINVIEW CONTROLLER.H 


#import <UIKit/UIKit.h> 

#import "NotesandReminders.h" 
#import "Cell.h" 
#import "SWRevealViewController.h" 
#import "AvailableSessionViewController.h" 
#import "ServiceConnector.h" 
#import "AppDelegate.h" 
#import "PopOverViewController.h" 
#import "UIViewController+MJPopupViewController.h" 


@class NotesandReminders; 
@class PopOverViewController; 
@protocol Popupprotocol <NSObject> 

@optional 
-(void)SignOut; 

@end 
@interface TimeTableViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate,MJSecondPopupDelegate>{ 

} 


MAINVIEWCONTROLLER.M 

#import "AvailableSessionViewController.h" 

@interface TimeTableViewController() 
@end 

@implementation TimeTableViewController 
@synthesize pc,myCounterLabel,cancelSessionButtonOutlet,userButtonOutlet,saveButtonOutlet,timerr,collectionData,cancelSession,jsonData,secondviewcontroller,popoverController; 

@synthesize startWeek,endWeek,startDateLabel,endDateLabel,todaysDate,startDate,endDate,dateForMatching,startDateToCall,endDateToCall; 
@synthesize blueBarOutlet; 
BOOL isLongPressed ; 
int hours, minutes, seconds; 
int secondsLeft; 
int valueForBlueBar; 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

// This method runs first when the screen is displayed 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"POPSegue"]) { 
     PopOverViewController* userViewController = [segue destinationViewController]; 
     userViewController.delegate=self; 

    } 
} 

AFTER LOG OUT IN ROOT VIEW CONTROLLER

我創造流行在剛剛通過CNTRL拖動到視圖控制器和選擇酥料餅模態

enter image description here

回答

0

這是我設法擺脫它

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"POPSegue"]) { 

     // settings popover is the global variable for --> UIPopoverController *settingsPopOver; 

     settingsPopOver = [(UIStoryboardPopoverSegue *)segue popoverController]; 
     _secondviewcontroller = (PopOverViewController *)settingsPopOver.contentViewController; 
     _secondviewcontroller.delegate = self; 


    } 
} 
1

後以下行:

[self.popoverController dismissPopoverAnimated:YES]; 

添加

[self.popoverController.contentViewController.navigationController     
               popToRootViewControllerAnimated:YES]; 
+0

我的代碼被彈出到根視圖控制器,但酥料餅不解僱..它仍然是根可見視圖控制器..當我點擊外部根視圖控制器然後它是解僱 – iOSDeveloper 2014-09-06 16:20:23

+0

,我跑這個代碼NSLog(@「%hhd」,[self.popoverController isPopoverVisible]);它給了我ZERO – iOSDeveloper 2014-09-06 16:21:22