Tag: 委托

ios – 当InApp邮件命令被调用时,应用程序崩溃

当我通过UIActionSheetbutton填充消息撰写表时,我得到以下错误。 对不起,这些对我来说没有多大意义 – 还在学习:-) 任何人都可以帮忙吗? 这是问题的来源。 这是在日志中: 2012-06-16 19:10:43.437 Multi Web [2665:4013] XPCProxy收到坏消息:目标没有提供bodyFinishedDrawing 2012-06-16 19:10:43.489 Multi Web [2665:907] _serviceViewControllerReady:error :错误域= XPCObjectsErrorDomain代码= 3“该操作无法完成(XPCObjectsErrorDomain错误3)” 干杯杰夫 if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; mailer.mailComposeDelegate = self; NSString *subject = [[NSString alloc] initWithFormat:@"Multi Web – Sending %@.txt", _documentFile]; [mailer setSubject:subject]; // Attach an image to the […]

从不同的视图更改标签

这主要是一个代表团的问题,因为我还在学习,不明白。 我不知道如何去创build我需要的委托。 我知道类似的问题已经被问到,但解决scheme并没有帮助我。 如何将视图1上的标签的文本与视图2中的UITextField的内容切换? 谢谢!

为什么不分类UIApplication? 为什么要使用委托?

而不是使用应用程序委托,以便UIApplication单例可以在预定义的时间调用委托方法,只是UIApplication什么优点和缺点? ( 更新:为什么iOS架构使用应用程序委托,而不是让人们通过UIApplication并重写其各种方法来编写应用程序?) 这是因为当我们创build一个新的UIView控件时,我们UIView ( update:或者我们也是UIViewController子类)。 那么为什么在应用的情况下,我们不UIApplication子类,而是使用委托?

embedded在两个独立容器控制器中的视图之间实现委托

我的故事板的相关部分如下所示: 您可以看到自定义的“容器控制器”视图包含两个容器视图,一个通过embedded式Segue链接到导航控制器,另一个通过embedded式Segue链接到自定义“主视图控制器”(实现表视图控制器)。 导航控制器组件还与定制“位置filter控制器”具有关系。 我需要实现委派,这样当位置filter控制器中的一个UISteppers是incr./decr时,Master View Controller中的表视图就知道要相应地更新显示的数据。 我并不习惯于与协议/代表合作,但是这种在不同意见之间进行交谈的独特情况实际上欺骗了我! 大多数情况下,我已经成功地遵循这里的例子: 在视图控制器之间传递数据 。 然而,在这种情况下,我不能直接链接实例化视图,因为他指出要在“传回数据”步骤6中进行操作。 我曾经考虑过使用一个singleton对象,从这些对象中,每个视图都可以获取/设置必要的数据,但是这里的问题是,table view不一定知道什么时候更新它的内容,尽pipe有数据可以更新/更新。 这里是一个来自ContainerController.m的代码片段,我在这里设置embedded的segues来运行: – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { DataHold *data = [[DataHold alloc] init]; // <– this actually is a singleton object if([segue.identifier isEqualToString:@"locationEmbedSegue"]) { } else if([segue.identifier isEqualToString:@"tableEmbedSegue"]) { [[segue destinationViewController] setDelegate:data.detailTableViewController]; // ^ This part actually sets up a delegate so that […]

MKAnnotationView viewForAnnotation从来没有调用过

我花了2天的时间寻找错误之后,我必须在这里寻求帮助。 我确实有MapViewController,并在地图上放置一些引脚。 我从苹果代码示例的MapCallouts和WeatherMap中复制了大部分代码。 无论如何,似乎我已经删除或错过了重要的部分。 似乎MapViewController和下面的代码之间没有连接 – (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation { NSLog(@"MKAnnotationView"); return nil; } 设置一个注释看起来像这样,它运作良好: – (void)createPoi:(CLLocationCoordinate2D)theCoordinate { NSLog(@"createPoi"); RandomAnnotation *randomAnnotation = [[RandomAnnotation alloc] init]; [randomAnnotation setTheCoordinate:theCoordinate]; [randomAnnotation setTheTitle:@"bla"]; [randomAnnotation setTheSubTitle:@"bla"]; [self.mapAnnotations insertObject:randomAnnotation atIndex:kRandomAnnotationIndex]; [randomAnnotation release]; [self.mapView addAnnotation:[self.mapAnnotations objectAtIndex:kRandomAnnotationIndex]]; } 我无法弄清楚什么是错的。 有人可以给我一个暗示什么是缺less的? 我不得不承认,我没有任何与委托模式的经验。

重要的改变位置委托方法不被调用

我所有的代码都在AppDelegate.m中: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]; _locationMgr = [[CLLocationManager alloc] init]; [_locationMgr setDelegate:self]; if([_locationMgr respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) [_locationMgr setAllowsBackgroundLocationUpdates:YES]; CLAuthorizationStatus authorizationStatus= [CLLocationManager authorizationStatus]; if([launchOptions valueForKey:UIApplicationLaunchOptionsLocationKey] != nil) { NSLog(@"relaunching because of significant location change – restarting SLC"); [_locationMgr startMonitoringSignificantLocationChanges]; } else { if (authorizationStatus == kCLAuthorizationStatusAuthorizedAlways) { NSLog(@"launching with authorization to […]

方法不从应用程序委托在iOS调用

我想从应用程序的其他地方调用一个方法来获取用户在应用程序委托中获得的位置。 当调用CLLocation *getCurLoc = [AppDelegate getCurrentLocation]; 从另一个视图控制器,没有返回。 应用程序代表是, @synthesize locationManager; CLLocation *location; – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ locationManager = [[CLLocationManager alloc]init]; locationManager.delegate = self; locationManager.desiredAccuracy=kCLLocationAccuracyKilometer; [locationManager startUpdatingLocation]; return YES; } – (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ [locations lastObject]; [manager stopUpdatingLocation]; CLLocation *location = [locations lastObject]; } +(CLLocation *)getCurrentLocation{ return location; } 将其更改为带有“ – ”的实例方法不起作用。 应该把“位置”做成一个实例吗? 代表是否应该成为一个实例,还是有更好的方法从其他地方访问?

objective-c协议代表

我正在理解代表如何工作,已经走过了一些例子,但现在用一个基本的testing应用程序,似乎我还没有得到它, 在这里我的代码: 类定义协议> * .h #import <Foundation/Foundation.h> @protocol protoPerra <NSObject> -(void) dimeTuNombre:(NSString *) s; @end @interface MyClassic : NSObject { id<protoPerra> _delegate; } @property (assign) id<protoPerra> delegate; @end 类实施协议> * .m #import“MyClassic.h” @implementation MyClassic @synthesize delegate = _delegate; – (id)init { self = [super init]; if (self) { // Initialization code here. [[self delegate] dimeTuNombre:@"pinguete"]; […]

后续的NSURLConnections不会触发委托方法

我已经找遍了这个问题的答案,并已经看到了很多类似的问题,但解决scheme似乎没有涉及到我的情况。 我很新的iOS开发,所以任何帮助,将不胜感激。 目前的应用程序正在寻找基于他们的网站生成的XML饲料显示在城市发生的事件。 我将事件存储在plist中,并在应用程序加载时明确检查新事件。 目前的stream程如下: 应用程序启动并使NSURLConnection检查服务器的时间戳并下载。 检查新下载的时间戳与本地时间戳,看看是否更大。 如果是,它会重写包含plist的文件,并触发一个需要新事件的通知。 这是第二个NSURLConnection似乎没有触发的地方。 callback方法本身触发,但它似乎不像委托方法之后触发。 奇怪的是,如果我同时调用两个连接而不是另一个连接,他们都会触发并调用委托方法。 下面是一些类的代码,为了清楚起见删除了一些内容: 申请代表: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Set up analytics account // Set the tab bar controller as the window's root view controller and display. self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; //Set up listeners for event handling [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(timeStampResponse:) name:@"TimeStampResponse" object:nil]; […]

如何添加应用程序委托回到mainwindow.xib

简短的回答: 从对象库中拖动一个对象,并将其类设置为委托。 详情请参阅下面的答案。 我不小心从mainwindow.xib中删除了应用程序委托。 我到处看,但仍然找不到一种方法将其添加回来。 我试图在网上find它,但仍然没有结果。 任何人都可以帮我解决它? 谢谢。 我的项目 其他的项目 的main.m #import <UIKit/UIKit.h> int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, nil); } }