Tag: iphone

在iOS 7上,如果最终包含在标签栏控制器中,则使用工具栏推送控制器会留下无法使用的空间

在我的iOS应用程序中,我的窗口的rootViewController是一个标签栏控制器,其层次结构如下所示: 的UITabBarController UINavigationController 1 FirstContentController UINavigationController 2 … UINavigationController 3 … … 当用户点击FirstContentController上的某一行时, SecondController一个实例将被推送到其导航控制器上。 SecondContentController在其init方法中设置hidesBottomBarWhenPushed为YES ,并在viewWillAppear: self.navigationController.toolbarHidden设置为NO 。 在iOS 6中,用户将点击FirstController的行,并将SecondController推到导航控制器上。 因为它具有隐藏的hidesBottomBarWhenPushed设置,它会隐藏标签栏,并且,当过渡animation完成时, SecondController将在其工具栏可见的屏幕上。 但是,在iOS 7下testing时, hidesBottomBarWhenPushed的行为似乎已经改变了。 我现在看到的是: 如预期的那样标签栏隐藏 按预期方式出现工具栏 在工具栏和内容视图之间会出现一个高度为49像素(标签栏高度)的不可用空间 差距是完全无法使用的 – 它不响应触摸,如果我在主视图上设置clipsToBounds为YES,则没有任何绘制。 经过大量debugging和检查子视图层次结构后,iOS的自动调整机制将视图控制器视图的大小调整为411(在iPhone 5上)。 应该是460,直到工具栏,但布局系统似乎包括一个“鬼”49像素高的标签栏。 如果视图控制器有一个标签栏控制器作为一个,如果其父容器只会发生此问题。 在iOS 7上,如何在新控制器被按下时将标签栏消失,并且工具栏无缝滑入到位,并且仍然占用导航项和工具栏之间的整个空间? UPDATE 经过进一步调查,只有当SecondController的edgesForExtendedLayout设置为UIRectEdgeNone才会发生这种情况。 但是,除非将该属性设置为UIRectEdgeNone ,否则该视图的框架太长,并且在工具栏下面延伸,无法看到或与之交互。

在应用程序未运行时处理推送通知

当我的应用程序没有运行,并收到推送通知,如果我点击该通知,应用程序启动 – 但它不会提示用户与我设置的警报视图,询问他们是否要查看通知的内容与否。 它刚刚启动,并坐在那里。 当应用程序运行时,推送通知可以完美地工作 – 既可以作为活动应用程序,也可以在后台运行 – 但是当应用程序不运行时没有任何工作正常。 我尝试在application: didFinishLaunchingWithOptions: launchOptions NSDictionary application: didFinishLaunchingWithOptions:查看加载它的是什么 – 但它出现为“(null)”。 所以它基本上不包含任何内容 – 这是不合理的,不应该包含通知的负载? 任何人有任何想法如何使推送通知工作,当他们到达而应用程序不运行? 编辑:这里是我在application: didReceiveRemoteNotification使用的代码application: didReceiveRemoteNotification只是为了看看是什么: if (UIApplicationStateBackground) { NSLog(@"==========================="); NSLog(@"App was in BACKGROUND…"); } else if (UIApplicationStateActive == TRUE) { NSLog(@"==========================="); NSLog(@"App was ACTIVE"); } else { [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 99]; UIAlertView *BOOM = [[UIAlertView alloc] […]

如何使用Key-Value Coding来判断对象是否存在一个对象?

我想testing一个对象是否在iPhone SDK中有一个可写的@property。 这样做的一个可能的方法是检查-valueForKey:方法,但这似乎相当不雅! 例: @try { id *value = [instance valueForKey:@"myProperty"]; } @catch (NSException * e) { // Key did not exist } 有没有更好的方法来做到这一点?

Xcode 4没有符号化崩溃日志

我刚刚更新我的Xcode到4.0.1。 现在我遇到了从我的testing仪,甚至从我的手机收到的崩溃日志的象征性问题。 当我构buildAdHoc发行版时,我使用“Arhive”scheme,然后创build* .ipa文件,并使用我的开发人员凭据进行演唱。 这是问题吗? 而我找不到这些AdHoc版本的dSym文件。

NSUserDefaults同步的最佳实践

每当我向plist写入任何东西时,我都使用[[NSUserDefaults standardUserDefaults] synchronize] 。 这是过度杀伤力? 或者是否有这样做的不利影响?

从后台线程到服务器的asynchronous请求

当我试图从后台线程对服务器执行asynchronous请求时,我遇到了这个问题。 我从来没有得到这些要求的结果。 显示问题的简单例子: @protocol AsyncImgRequestDelegate -(void) imageDownloadDidFinish:(UIImage*) img; @end @interface AsyncImgRequest : NSObject { NSMutableData* receivedData; id<AsyncImgRequestDelegate> delegate; } @property (nonatomic,retain) id<AsyncImgRequestDelegate> delegate; -(void) downloadImage:(NSString*) url ; @end @implementation AsyncImgRequest -(void) downloadImage:(NSString*) url { NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0]; NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; if (theConnection) { receivedData=[[NSMutableData data] retain]; } else { } […]

“nib”和“xib”代表什么?

我想知道为什么这个文件扩展名叫做nib或xib 。 我猜想在笔尖 ib是Interface Builder 。 但是, 还是x ? 任何想法?

如何改变图像中的特定颜色?

我的问题是,如果我有一个狮子形象,只是我想改变狮子的颜色,而不是背景颜色。 为此,我提到了这个问题,但是却把整个图像的颜色变成了一个整体。 而且图像看起来不怎么样。 我需要像Photoshop一样的颜色变化。 是否可以在coregraphics中做到这一点,或者我必须使用任何其他库。 编辑:我需要颜色变化像iQuikColor应用程序

如何检测应用程序是否在越狱设备上运行?

我刚刚发布了我的应用程序的iOS,但我不知道如何使我的应用程序安全的jailbrakers使用。 我可以做些什么来阻止我的应用程序在越狱设备上工作吗?

NSDateFormatter,我做错了什么或这是一个错误?

我试图以某种格式打印date: NSDate *today = [[NSDate alloc] init]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyyMMddHHmmss"]; NSString *dateStr = [dateFormatter stringFromDate:today]; 如果iPhone设置为24小时制,则工作正常,但另一方面,如果用户已将其设置为24小时制,则返回AM / PM(直到您切换此设置才能正常工作),则会将AM追加到AM /下午,尽pipe我没有要求: 20080927030337 PM 我做错了什么或者这是固件2.1的错误? 编辑1:使描述更清晰 编辑2解决方法:事实certificate,这是一个错误,解决它我把AM和PM字符设置为“”: [dateFormatter setAMSymbol:@""]; [dateFormatter setPMSymbol:@""];