Я установил метод делегата для связи с моего masterViewController
на мой detailViewController
, но метод делегата не вызван.Делегат в UISplitView не называется
MasterViewController.h
#import <UIKit/UIKit.h>
@class DetailViewController;
@class MasterViewController;
@protocol MasterViewControllerDelegate
- (void)SelectionChanged:(NSString *)url;
@end
@interface MasterViewController : UITableViewController
@property (nonatomic, weak) id<MasterViewControllerDelegate> delegate;
@property (strong, nonatomic) DetailViewController *detailViewController;
@end
Тогда в моей MasterViewController.m я синтезирование делегата:
@synthesize delegate;
И, наконец, я звоню метод делегата от моего метода didSelectRowAtIndexPath вот так:
Тогда в моем DetailViewController.h У меня есть:
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate, MasterViewControllerDelegate>
И в DetailViewController.m:
- (void)SelectionChanged:(NSString *)url {
NSLog(@"URL is %@", url);
}
Когда я запустить приложение, то NSLog
из SelectionChanged
никогда не вызывается, и я не получаю никаких ошибок. Есть идеи?
Вы уверены, что 'self.delegate' не ноль? – Saphrosit
Я только что проверил его и, конечно, self.delegate (null). Я думаю, я должен понять, почему это так ... –
Не может показаться, что мой делегат имеет значение null .... тьфу. –