Tag: 委托

iOS中的多个代理

我正在做一个对象,去下载所有我的视图控制器的东西。 该对象是单例实例,并且一旦下载完成就具有接收数据的callback方法。 它也有一个委托属性,以便它知道下载完成后要回叫哪个对象。 有多个控制器使用这个共享的实例,我的问题是如何callback请求下载的正确的视图控制器。 我的方法是使用委托,但问题是,因为其他视图控制器也是它的委托,下载对象可以回叫每个对象,这将是很难跟踪。

在代理之间传递数据的替代方法是什么?

“代表”是否可以将数据从一个控制器传回另一个控制器? 就像实现一个委托只是为了将一个子控制器的结果传回给父控制器一样。 有没有另一种方法? “块”是一个答案,如果是这样的话,一些示例代码会很好。

如何使用委托将数据从自定义单元格传递到父视图中的标签

我已经想出了在其他情况下如何在代表之间传递数据,但是这个问题困扰着我。 在这个例子中,我试图通过按下button发送数据,直到使用委托模式的标签,但没有任何成功。 我的猜测是,我错过了一些基本的东西,而且我还没有发现任何与这种方式有关的代表。 // // ViewController.swift // TableCellDelegate // // Created by Chris Cantley on 6/1/15. // Copyright (c) 2015 Chris Cantley. All rights reserved. // import UIKit class ViewController: UIViewController, CellInfoDelegate { var cellViewController = CellViewController() //The place to put the number into. @IBOutlet weak var sumLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() cellViewController.delegate […]

在ObjectiveC上的委托之间传回信息

我需要在CameraSessionView之间传回一张NSMutableArray的照片; 如何将从摄像头拍摄的照片存储在NSMutableArray上,以及如何将这些照片上传到DropBox的TableViewController。 我正在使用委托和协议,但我尝试的所有方式…失败。 任何人都可以帮助我。 我觉得我做错了一些小事情。 我给你看一些代码: CameraSessionView.h @class CameraSessionView; @protocol CameraSessionViewDelegate <NSObject> @optional -(void)uploadPhotosFromCamera:(NSMutableArray*)photos; @end @property (nonatomic, weak) id <CameraSessionViewDelegate> delegado; CameraSessionView.m @property (nonatomic, strong) NSMutableArray* images; – (void)onTapOkButton{ NSLog(@"Save photos"); if([self.delegado respondsToSelector:@selector(uploadPhotosFromCamera:)]) [self.delegado uploadPhotosFromCamera:_images]; [self onTapDismissButton]; } PhotosTableViewController.h @interface PhotosTableViewController : UITableViewController <CameraSessionViewDelegate> PhotosTableViewController.m @property (nonatomic, strong) CameraSessionView *camera; – (void)viewDidLoad { _camera = […]

在“更多”部分中,didSelectViewController不会被调用

我有一个UITabBarController,我已经设置了它的委托方法didSelectViewController ,因为我感兴趣的是被选中的标签的索引。 但是,我注意到didSelectViewController方法不会被调用,当用户在“更多”部分(当有更多的选项卡可以显示在标签栏中): 有没有办法让我得到用户从正在自动创build的表中select的项目的通知?

使用委托传递数据备份导航堆栈

我一直在争夺两个视图控制器之间的数据传递了两天,现在变得非常困惑。 我是Objective-C的新手,并且发现了一些棘手的部分让我头晕目眩。 我有一个导航控制器,FirstView是一个窗体,并在这个窗体上我有一个button,加载SecondView其中包含一个TableView供用户select一些选项。 然后,我想要将select传递回FirstView控制器并显示数据等… 我已经阅读了很多关于这个(stackoverflow,iphonedevsdk,CS 193P资源)和我见过的选项是, 1)ivar在应用程序委托(肮脏,不build议)2)创build一个单身人士3)创build一个数据模型类4)使用协议和代表(苹果推荐) 我想做的事情正确,并希望在我的程序中使用选项4 – 代表 问题是,我不了解代表以及如何设置和实施它们。 任何人都可以提供一个关于如何使用委托和2视图控制器来设置和传递NSArray的基本示例。 在此先感谢马特

在UICollectionView中实现button点击

有没有一种方法可以从UICollectionViewCell的button获取button单击事件? 我用一个笔尖来填充集合视图,单元格有button,但是它的动作没有被调用。 我认为问题在于代表被调用。 我怎样才能解决这个问题? 我如何创build: 添加一个空的笔尖,创build一个集合视图单元格 添加了一个.h和.m文件,并创build了单元格笔尖的文件所有者 在class上写了一个动作。 将button连接到该操作 有什么办法可以得到这个动作吗? 我究竟做错了什么?

试图理解Swift中的协议/委托

我是编程和Swift的新手,我正试图理解如何在两个视图控制器(无segue)与协议和委托之间传递数据。 我有一个视图控制器(视图A),它有一个文本字段和button。 当用户点击该button时,它应该显示在另一个视图控制器(视图B)的​​标签中的文本。 我无法获得标签来显示文本 – 我将不胜感激解释什么是需要做这项工作。 非常感谢! import UIKit protocol sendNameToViewB { func showNameLabel(name:String) } class ViewA: UIViewController { var delegate: sendNameToViewB? @IBOutlet weak var textField: UITextField! @IBAction func addButton(sender: AnyObject) { delegate?.showNameLabel(textField.text) } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func […]

使用KVO与NSNotificationCenter观察对可变arrays的更改

在我的模型中,我有一个名为events的对象数组。 我想我的控制器被通知每当一个新的对象被添加到事件。 我认为这样做的好方法是使用KVO模式在事件发生变化时得到通知(从添加新对象开始) // AppDelegate // events is a NSMutableArray @property/@synthesize etc… [appDelagate addObserver:self forKeyPath:@"events" options:NSKeyValueObservingOptionNew context:NULL]; 但是, observeValueForKeyPath方法没有被调用,我发现数组不符合KVO 🙁 一种select是通过为keyPath调用willChangeValueForKey来手动触发该方法 // ViewController [self willChangeValueForKey:@"events"]; [self.events addObject:event]; [self didChangeValueForKey:@"events"]; 但是这样感觉很重,因为我应该跟踪事件数组的前后状态,以便可以通过observeValueForKeyPath方法来访问它。 一种方法是使用一个标准数组(而不是可变的),每次我想添加一个新的对象时创build/设置一个新的事件实例,或者我可以创build一个单独的属性来跟踪可变数组(我希望你可以观察@“events.count”)。 另一种select是使用NSNotificationCenter。 我也读过一些build议使用块的答案(但我不知道从哪里开始)。 最后,我是否可以在我的委托中保存我的控制器实例,并发送相关消息? // Delegate [myController eventsDidChange]; 从代表保持对控制器的引用是否很奇怪? 我正在努力了解如何select哪个是最好的方法来使用,所以任何有关性能,未来的代码灵活性和最佳实践的build议,将不胜感激!

如何设置一个tableview委托

我试图使用UITableView而不使用一个笔尖,也没有使用UITableViewController 。 我已经添加了一个UITableView实例到像这样的UIViewController mytable = [[UITableView alloc] initWithFrame:CGRectMake(22, 207, 270, 233)]; [mytable setDelegate:self]; [self.view mytable]; 此外,我已经添加了下面的表视图方法到我的UIViewController (cut为重点) – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath – (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 我得到一个警告,说我的UIViewController不实现UITableView委托协议。 什么是正确的方式来告诉表视图委托方法的地方? (这是我第一次尝试使用UITableView而不从新的文件选项中selectUITableTableview控制器)