Tag: 代表

我怎样才能将数据从父视图控制器传递给子视图控制器?

我怎样才能将数据从父视图控制器传递给子视图控制器? 我试图与代表这样做。 但我不认为这是一个选项?

在执行下一条语句之前,如何等待NSURLConnection委托完成?

这是一个很难search。 我发现了一个类似的问题, iOS 5在填充表之前等待委托完成? ,但接受的答案是“刷新表视图”,这并没有帮助我。 我发现的其他结果往往是在C#中。 我有一个从iPhonestream到Wowza服务器的应用程序。 当用户点击logging时,我生成一个唯一的设备ID,然后将其发送到服务器上的PHP脚本,该脚本返回带有configuration设置(包括rtmp转储链接)的JSON文档。 问题是,委托方法是asynchronous的,但我需要在我的- (IBAction)recordButtonPressed方法的下一行代码之前获取configuration设置,因为代码是什么设置configuration文件设置,然后基于这些设置进行logging。 我已经意识到,我可以像现在一样在-recordButtonPressed创buildNSURLConnection ,然后在委托方法connectionDidFinishLoading (或者只是封装设置和方法从那里调用它) 内部继续安装代码,但是这会牺牲function的一致性devise,吮吸。 是否没有一些简单的waitUntilDelegateIsFinished:(BOOL)nonAsyncFlag标志我可以发送给委托,所以我可以从网上拉数据的顺序操作?

在外部库协议中添加和使用新方法时出现警告

我正在使用外部库,我的一个视图控制器正在注册为该框架中的类的委托。 现在,我想在这个委托类上执行一些代码。 我正在写一个方法,并在我的代理上调用它。 现在,一切工作正常,但我得到一个警告,这个新添加的方法不是协议的一部分。 这是我的class级: @protocol MyExtendedDelegate <LibraryDelegate> @optional – (void)actionTaken; @end @interface MyController : UITableController <MyExtendedDelegate> { } @end 而在我的控制器里面,我正在注册自己作为库控制器的代理 LibraryController *libController = [[LibraryController alloc] init]; libController.delegate = self; 最后,这是我调用此方法的单独的类中的代码: – (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if ([self.libraryController.delegate respondsToSelector:@selector(actionTaken)]) { [self.libraryController.delegate actionTaken]; } 这是我得到的警告: – actionTaken在协议中找不到 – NSObject可能不会响应actionTaken 我想摆脱这个警告。 任何想法。

在swift代表中查找委托

我想在删除之前检查我的removeDelegate方法是否已经有一个委托。 我怎么做? 这是迄今为止我所得到的: protocol LocationManagerDelegate { func locationManagerDidUpdateLocation( oldLocation: CLLocationCoordinate2D, currentLocation: CLLocationCoordinate2D ) } class LocationManager: NSObject { private var _delegates = [LocationManagerDelegate]() func removeDelegate(delegate:LocationManagerDelegate) { if contains(_delegates, delegate) { // Remove delegate } } } 但是,这给了我'包含'行上的以下错误: 不能用types'(@lvalue数组<LocationManagerDelegate> !, LocationManagerDelegate)'的参数列表调用'contains''

两个视图控制器之间的快速代表没有segue

我的委托协议从来没有调用 我的第一个控制器 – ViewController class ViewController: UIViewController,testProtocol { @IBAction func btInit(sender: AnyObject) { println("Bt Init") let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewTarget") as targetViewController self.presentViewController(initViewController,animated: false, nil) } var targetController = targetViewController(); override func viewDidLoad() { super.viewDidLoad() self.targetController.delegate = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose […]

无法在具有@objc属性的协议中使用自定义类?

我正在尝试为JSON加载委派JSONLoaderDelegate创build一个协议。 我的另一个名为JSONLoader类应该派发事件给它的委托(实现JSONLoaderDelegate协议),如下所示: self?.delegate?.jsonLoaderdidEndWithError(self!, error: JSONLoaderError.LoadError) JSONLoader的实现并不重要(imho)。 但是,我似乎有执行协议的问题,这是代码: @objc protocol JSONLoaderDelegate { optional func jsonLoaderdidBeginLoading(jsonLoader: JSONLoader) func jsonLoaderdidEndWithError(jsonLoader: JSONLoader, error: JSONLoader.JSONLoaderError) func jsonLoaderDidEndWithSuccess(jsonLoader: JSONLoader) } 这看起来很简单,但我得到一个错误: 方法不能标记@objc,因为参数的types不能在Objective-C中表示。 指出了所有三个function。 显然,如果我删除@objc属性,我不能使用该function的optional 。 我真的想保持jsonLoaderdidBeginLoading作为可选的寿。 任何想法/方法来解决这个问题? 谢谢!

Dropbox的SDK – linkFromController:委托或callback?

我使用他们的网站上提供的SDK将Dropbox添加到我的应用程序。 有没有办法调用一些方法[[DBSession sharedSession] linkFromController:self]; 链接一个帐户? 基本上我想调用[self.tableView reloadData]一旦应用程序已经尝试login到Dropbox。 它甚至不需要区分成功或不成功的login。

applicationWillResignActive和setBrightness不工作?

我使用[[UIScreen mainScreen] setBrightness:](在SDK 5.0中)更改我的应用程序中的系统背景灯。 以下步骤适用于我的应用程序: 激活应用程序,默认获取系统亮度,然后保存为sysBright。 用我的应用程序改变亮度,改变亮度,然后保存为appBright。 ResignActive应用程序与主页button或lockingbutton,将亮度设置为sysBright(步骤1的值,系统默认亮度)。 再次激活应用程序 然后它会重复上述步骤1到3。 第3步有些问题,当我用锁buttonclosures应用程序时,applicationWillResignActive函数运行良好,它可以恢复亮度值(sysBright)。 但是,当我按下主页button,它不再工作。 亮度仍然是我在我的应用程序中更改的值。 (appBright) 有没有人有任何想法呢? 感谢您的帮助〜 这里是代码: float appBright,sysBright; – (void)applicationDidBecomeActive:(UIApplication *)application { sysBright = [[UIScreen mainScreen] brightness]; [[NSUserDefaults standardUserDefaults] setFloat:sysBright forKey:@"sysBright"]; [[UIScreen mainScreen] setBrightness:appBright]; } //doesn't work when i ResignActive with the home button – (void)applicationWillResignActive:(UIApplication *)application { [[NSUserDefaults standardUserDefaults] floatForKey:@"sysBright"]; [[UIScreen mainScreen] setBrightness:sysBright]; […]

设置UIImagePicker的委托返回错误

在我为OCR翻译应用程序编写的代码中遇到问题。 代码片段如下: @IBAction func btnOCR(sender: AnyObject) { var languageAlert = UIAlertController(title: "For Your Information…", message: "The OCR feature currently only supports English & French.", preferredStyle: .Alert) languageAlert.addAction(UIAlertAction(title: "Okay", style: .Default, handler: { action in var image = UIImagePickerController() image.sourceType = UIImagePickerControllerSourceType.Camera image.allowsEditing = false image.delegate = self presentViewController(image, animated: true, completion: nil) })) self.presentViewController(languageAlert, animated: […]

每个对象有多个代表?

我有一个UIScrollView ,我需要子类和子类内我需要附加UIScrollViewDelegate所以我可以实现viewForZoomingInScrollView方法。 然后我有一个UIViewController ,我需要实例化我创build的这个UIScrollView子类的一个对象,我也想使UIViewController成为这个对象的UIScrollViewDelegate ,所以我可以在这个UIViewController类中实现scrollViewDidZoom 。 如何使一个对象有两个代表? (我知道我可以很容易地只有一个委托,只是在那里实现这两个方法,但为了devise的目的,我想按照我提到的方式来做)。