Tag: 委托

在使用委托的ObjectiveC中,如何在不使用UIButton的情况下发送消息?

我最近学会了使用委托从一个类发送消息到另一个每当button被按下,我想找出如何发送消息没有button的动作。 苹果文档build议一个可能的方法是performSelector:(SEL)aSelector; 但是当我尝试使用它时,我没有运气。 相反,这是我所尝试的。 在MicroTune.h中 ,我定义了一个委托并给它一个属性 @class Synth; @protocol TuningDelegate <NSObject> -(void)setTuning:(NSData *)tuningData; @end @interface MicroTune : NSObject { … } @property (assign) id<TuningDelegate> delegate; @end 在Synth.h中 ,我声明了这个类作为委托 #import "MicroTune.h" @interface Synth : NSObject <TuningDelegate> 在Synth.m中 ,我创build了一个让我知道消息到达的方法 #import "Synth.h" – (void)setTuning:(NSData *)tuningData { NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:tuningData]; NSLog(@" hip hip %@", array); } 编辑 […]

Swift 3如何pipe理不同目标的不同代表

我们为同一个项目创build了两个目标(Target_One&Target_Two)。 Target_One包含SDK1并委托Target1SDKHelperDelegate Target_Two包含SDK2并委托Target2SDKHelperDelegate 创build两个目标的原因是:我们需要上传两个具有相同用户界面但不同SDK集成的应用程序。 我们知道,每个SDK都有自己的代表。 所以我们想要应用特定于目标的代表。 例如:Target_One有一个名为MyClass的类 class MyClass: NSObject, Target1SDKHelperDelegate { } 在上面的类中,我们实现了Target1SDKHelperDelegate委托。 我们对Target_Two也使用相同的类,我们要为Target_Two使用Target2SDKHelperDelegate。 那么我们如何能够让两个不同的代表来实现两个不同的目标呢? 我们也知道要pipe理目标,我们应该使用下面的代码。 #if Target_One #else #endif 但是有谁告诉我们如何使用上面的代理pipe理? 我们想要做一些事情: class MyClass: NSObject #if Target_One , Target1SDKHelperDelegate #else , Target2SDKHelperDelegate #endif { }

NSXMLParser委托处理属性

我目前正试图让我的parsing器委托工作与我已经创build的xml的属性我正在接受的自定义NSObject .. 这是正在读入我的parsing器代表的XML <Rows> <Row SKATERID="706" MANUFACTURER="GAZ" ISFACT="F" ISSKATE="F"/> <Row SKATERID="318" MANUFACTURER="MAN" ISFACT="F" ISSKATE="T"/> //… </Rows> 这就是我对我的-parser:didStartElement:namespaceURI:qualifiedName:attributes: method: – (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if ( [elementName isEqualToString:@"Row"]) { manufactureNSObject = [[ManufactureNSObject alloc] init]; manufactureNSObject.ISFACT = [attributeDict objectForKey:@"ISFACT"]; manufactureNSObject.ISSKATE = [attributeDict objectForKey:@"ISSKATE"]; manufactureNSObject.MANUFACTURER = [attributeDict objectForKey:@"MANUFACTURER"]; manufactureNSObject.SKATERID = [attributeDict […]

将一些数据传回给RootViewController iOS 7

假设我们在我们的UINavigationController有3个ViewController叫做ViewControllerA,ViewControllerB,ViewControllerC。 具体来说,ViewControllerA是RootViewController而ViewControllerB和ViewControllerC则是在它上面推送的。 所以,目前ViewControllerC是在顶部和用户可见。 我想通过调用[self.navigationController popToRootViewControllerAnimated:YES];返回到ViewControllerA [self.navigationController popToRootViewControllerAnimated:YES]; 方法并从这里传递一些数据到ViewControllerA。 我必须根据从ViewControllerC传递的数据更新一些用户界面。 如果我不得不从ViewControllerB返回数据,那么我可以实现自定义协议/委托。 但是,在上述情况下,什么是一个好的方法? 在此先感谢您的帮助。

UITableView委托在NSURL委托之后没有被调用

我正在尝试创build一个iOS应用程序,从Web服务获取一些数据并将其显示在自定义单元格中。 到目前为止,我可以通过NSLog cmdvalidation数据实际上是在相应的数组中。 这意味着连接代表被调用。 但不幸的是不是TableView代表。 或者让他们说,他们正在打电话,但也许在错误的地方? 我也尝试在connectionDidFinishLoading方法之后重新加载Table视图,但它不起作用。 任何想法是什么错误? 这也是非常有趣的第一次我的NSLog被调用我有0个对象在数组中,第二次连接后,我有25个对象。 这是应该的。 但仍然。 表单元格是空的… 我的表格视图代表: – (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section{ return _matchesArray.count; } – – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ NSLog(@"%lu", (unsigned long)_matchesArray.count); return _matchesArray.count; } – – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *cellIdentifier = @"Cell"; ResultCell * cell = (ResultCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if (cell == nil) […]

从UIPopover发送委托消息到主UIViewController

我试图在我的UIPopover使用button来创build一个UITextView在我的主要UIViewController代码我看起来像这样( PopoverView.h文件): @protocol PopoverDelegate <NSObject> – (void)buttonAPressed; @end @interface PopoverView : UIViewController <UITextViewDelegate> { //<UITextViewDelegate> id <PopoverDelegate> delegate; BOOL sendDelegateMessages; } @property (nonatomic, retain) id delegate; @property (nonatomic) BOOL sendDelegateMessages; @end 然后在我的PopoverView.m文件中: – (void)viewDidLoad { [super viewDidLoad]; UIButton * addTB1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; addTB1.frame = CGRectMake(0, 0, 100, 50); [addTB1 setTitle:@"Textbox One" forState:UIControlStateNormal]; [self.view addSubview:addTB1]; […]

Monotouch / iOS:哪个地方是取消订阅委托最好的地方

iOS中订阅事件的最好方法是ViewDidLoad,但是当closures视图时,不会调用ViewDidUnload()(仅当内存警告时)。 哪个地方最好取消订阅活动? (在subviewController中我订阅了一个引用MainViewController的事件,当打开子视图两次,我收到两个事件触发器,因为viewdidunload()中的取消订阅从不会被调用。 如何在ViewWillAppear / ViewWillDisapper中订阅/取消订阅? public override void ViewWillAppear (bool animated) { base.ViewWillAppear (animated); this.mBL.OrderChanged += HandleOrderChanged; } public override void ViewWillDisappear (bool animated) { base.VieWillDisappear (animated); if (this.mBL!=null) this.mBL.OrderChanged -= HandleOrderChanged; }

允许C ++抽象类使用Objective-C委托

我有一个抽象类和他具体的类实现。 我想要做的是在iOS应用程序(Objective-C)中公开具体类,并使用协议将事件分派给ViewController。 这个想法是添加一个符合adHoc协议的目标C委托给这个具体的类。 任何想法如何实现? 不幸的是我读到Objective-C ++不能从C ++类inheritance。 先谢谢你。

ARC委托内存pipe理

在苹果的文件中说 如果您需要pipe理资源,而不是释放实例variables,则可以实施dealloc方法。 您不必(实际上不能)释放实例variables,但是您可能需要在系统类和其他未使用ARC编译的代码上调用[systemClassInstance setDelegate:nil]。 这是否包括UIKit和框架委托,例如,一个UIPageViewController的父母有委托UIPageViewControllerDelegate – 这是否必须在dealloc?

当要求获得访问照片的权限时,如何对用户select“不允许”做出反应?

基本上,当他们点击“不允许”时,imagePicker没有显示让用户进入隐私设置并打开的屏幕。 如果我杀了应用程序,并返回,隐私设置在那里。 所以我想我可能需要手动做这个,当他们触摸“不允许”。 当用户允许或不允许访问他们的照片库时是否有callback? 我无法在文档中find它。 至less我可以解雇imageView。 谢谢!