В данный момент у меня возникает действительно раздражающая проблема, когда я пытаюсь создать оверлей, чтобы предоставить неактивный интерфейс при поиске, а затем при касании - отклонить его.
Я адаптировал некоторый код из другой части моего приложения, и для меня они абсолютно одинаковые, ожидайте изменения имени переменной и т. Д.
Вот два заголовочных файла для сравнения
Наложение поиска контактов:
#import <UIKit/UIKit.h>
@class Contacts;
@interface Overlay : UIViewController{
Contacts *Contact;
}
@property(nonatomic,retain) Contacts *Contact;
@end
Наложение поиска по карте:
#import <UIKit/UIKit.h>
@class Map;
@interface mapOverlay : UIViewController{
Map *searcher;
}
@property(nonatomic,retain) Map *searcher;
@end
И два файла метода для сравнения
Наложение поиска контактов:
#import "Overlay.h"
#import "Contacts.h"
@implementation Overlay
@synthesize Contact;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[Contact doneSearching_Clicked:nil];
}
- (void)dealloc {
[Contact release];
[super dealloc];
}
@end
Наложение поиска по карте:
#import "mapOverlay.h"
#import "Map.h"
@implementation mapOverlay
@synthesize searcher;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[searcher doneSearching_Clicked:nil];
}
- (void)dealloc {
[searcher release];
[super dealloc];
}
@end
Так что они оба абсолютно одинаковы и вызывают одну и ту же функцию.
Вот заголовки для классов контактов и карты
Контакты
#import <UIKit/UIKit.h>
@class Overlay;
@interface Contacts : UIViewController <NSXMLParserDelegate , UISearchBarDelegate>{
Overlay *searchOverlay;
}
- (void)doneSearching_Clicked:(id)sender;
@end
Карта
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
@protocol ModalViewDelegate
- (void)didReceiveMessage:(NSString *)message fromwho:(NSInteger )whichText;
@end
@class mapOverlay;
@interface Map : UIViewController<MKMapViewDelegate,NSXMLParserDelegate, ModalViewDelegate> {
mapOverlay *searchOverlay;
}
- (void)doneSearching_Clicked:(id)sender;
@end
Я действительно озадачен этим. Я уверен, что я не сделал ничего плохого, поскольку обе реализации абсолютно одинаковы. Разница лишь в том, что у класса Map есть делегат для модального вида. Я взял это и попробовал, но все равно не повезло.
Я проверил, чтобы убедиться, что оба вида регистрируют касания, какие они есть. Просто кажется, что наложение, используемое для карты, не отправляет сообщение в класс Map.
Кто-нибудь знает, что может быть причиной того, что это работает в одном, а не в другом?