Невозможно вызвать метод протокола. Я использую pop over controller. я получаю делегата nil, а метод в контроллере просмотра таблицы времени не вызывается. Где я иду не так. Я новичок в этом протоколе. ниже мой код .. я только отправил только основной код извлекая весь остальной бесполезный код ... я просто хочу, чтобы перейти от просмотра TimeTable контроллера Root вида контроллера при выборе кнопки из PopOverView контроллеране удается перейти к контроллеру корневого представления
TimetableView Controller.h
#import <UIKit/UIKit.h>
#import "NotesandReminders.h"
#import "AppDelegate.h"
#import "PopOverViewController.h"
@class PopOverViewController;
@interface TimeTableViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate,TestProtocol>
@property(nonatomic,strong)PopOverViewController *testViewController;
Timetable view controller.m
@interface TimeTableViewController()
@end
@implementation TimeTableViewController
@synthesize testViewController;
- (void)viewDidLoad
{
self.testViewController=[[PopOverViewController alloc]init];
testViewController.delegate=self;
}
-(void)LogOut
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
POPOVER VIEW CONTROLLER.H
@protocol TestProtocol <NSObject>
@required
-(void)LogOut;
@end
POP OVER VIEW CONTROLLER.H
#import <UIKit/UIKit.h>
#import "TimeTableViewController.h"
@class TimeTableViewController;
@interface PopOverViewController : UIViewController <UIPopoverControllerDelegate>
{
id<TestProtocol>delegate;
}
- (IBAction)out:(id)sender;
@property(nonatomic,strong)TimeTableViewController *testTimeTableViewController;
@property(nonatomic,strong)UIPopoverController *popoverController;
@property(retain) id<TestProtocol>delegate;
@end
POP OVER VIEW CONTROLLER.M
#import "PopOverViewController.h"
@interface PopOverViewController()
@end
@implementation PopOverViewController
@synthesize delegate;
@synthesize popoverController,testTimeTableViewController;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (void)viewDidLoad
{
self.delegate=testTimeTableViewController;
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)out:(id)sender {
self.TimeObj=[[TimeTableViewController alloc]init];
[self.TimeObj Signout];
}
@end