我在做什么: 在我的应用程序中,我使用下面的代码展示了一个模态视图控制器(包含应用程序设置): optionsViewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; [self presentModalViewController:optionsViewController animated:YES]; 这个转换只是卷起视图的底部来暴露一些设置。 (请参阅“地图”应用程序中的示例。)当您点击页面的上半部分(原始视图仍然存在但灰显)时,模式视图控制器将自动解除(由操作系统处理,这个代码)。 – 什么不工作: 这在iOS 4中工作正常(我的应用程序实际上是在App Store上)。 但在iOS 5中,看起来苹果已经改变了这种转换的行为,而视图控制器不再解散自己。 我试图复制以前由操作系统处理的行为,但无法弄清楚如何。 – 我试过了: 在选项视图的顶部添加一个不可见的button不起作用。 然后页面卷起了我不想要的完整方式。 除此之外,我卡住了。 我应该如何复制原来的工作方式(或者我是从一开始就以错误的方式进行的!)。 任何帮助深表感谢!
随着iOS5的发布,苹果已经添加了自己的validationinputtype =“number”表单字段。 这是造成一些问题; 看到下面这个问题总结: inputtypes='数字'新的validation删除前导零和格式编号在Safari浏览器为iPhone iOS5和最新的Safari的Mac 虽然inputtypes=“电话”的作品,在iPhone上popup一个数字键盘,这是没有小数点的电话键盘 。 有没有办法将数字键盘设置为默认使用HTML / JS? 这不是一个iPhone应用程序。 至less我需要在键盘上的数字和小数点。 更新 Safari 5.1 / iOS 5中的数字input字段只接受数字和小数点。 我的一个input的默认值是$ 500,000 。 这导致Safari显示空白input字段,因为$,%是无效字符。 此外,当我运行我自己的validationonblur ,Safari会清除input字段,因为我将值添加到$。 因此,Safari 5.1 / iOS5的inputtypes=“数字”的实现使其不可用。 的jsfiddle 在这里试试 – http://jsfiddle.net/mjcookson/4ePeE/ $ 500,000的默认值不会出现在Safari 5.1中,但是如果你删除了$和$符号,它会的。 令人沮丧。
我有一个UISegmentedControl其“价值改变”事件在Interface Builder中连线,以调用我的控制器-(IBAction)segmentChangeAction:(id)sender; 当用户点击控件来更改选定的段时,无论在iOS4还是iOS5中,都会按预期segmentChangeAction 。 当我以编程方式更改选定的段segmentedControl.selectedSegmentIndex = newIndex; ,在iOS4 segmentChangeAction被调用,并且该段反映了新的select。 然而在iOS5上segmentChangeAction 没有被调用,但是该段确实反映了新的select。 这是iOS5的变化吗? 有没有什么我可以做的,以获得在iOS5上调用segmentChangeAction ,当我以编程方式更改select?
我正在尝试使用函数在HTML页面中调用一个JavaScript – View did load function { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *writablePath = [documentsDirectory stringByAppendingPathComponent:@"BasicGraph.html"]; NSURL *urlStr = [NSURL fileURLWithPath:writablePath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *myPathInfo = [[NSBundle mainBundle] pathForResource:@"BasicGraph" ofType:@"html"]; [fileManager copyItemAtPath:myPathInfo toPath:writablePath error:NULL]; [graphView loadRequest:[NSURLRequest requestWithURL:urlStr]]; } – (void) webViewDidFinishLoad:(UIWebView *)webView { [graphView stringByEvaluatingJavaScriptFromString:@"methodName()"]; […]
我有一个UIViewController被推入容器控制器,然后popup,并使用分配仪器,我可以看到视图控制器后被销毁。 但是,控制器的dealloc中的断点永远不会到达。 有谁知道为什么dealloc不被称为? ARC可以在不调用dealloc的情况下销毁对象? 另外,我禁用了NSZombies(有人说可能会导致dealloc不会触发)。 编辑: Dealloc并没有太多的function,只是打印到控制台上,并且永远不会被调用: – (void)dealloc { NSLog(@"Deallocating…"); } 我不能发布容器控制器 – 它是专有的,太复杂了。 Dealloc在一些控制器上被一致地调用,而不是其他的。 如果我能find时间,我会尝试发布一个简化版本来重现问题。 有什么办法来validationNSZombies被禁用? EDIT2 我正在张贴从仪器的截图; 它看起来像它正确地释放。
我将我的OSX从Snow Leopard升级到Lion,我下载了Xcode 4.3.1。现在,当我尝试validation并发布我的应用程序时,我得到了第一个截图。 如果我点击下载标识符button,我会得到第二个屏幕截图。 有什么build议?
我转换到iOS 5和故事板。 当我有默认的单元格样式的表视图,一切工作正常。 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifierFromStoryboard"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyIdentifierFromStoryboard"]; } return cell; } 我已经看到“if(cell == nil)”块被删除的例子。 但是,如果我把它拿出来,我的应用程序崩溃的消息:“UITableView dataSource必须从tableView:cellForRowAtIndexPath:”返回一个单元格。 这不是一个问题,因为它的工作原理如上所示。 我的问题是,我想为单元格使用自定义样式,因此不能使用initWithStyle。 如何初始化我在故事板上devise的自定义单元格? 旧的前5应用程序有一个笔尖和类使用这样的事情,但现在我正在使用故事板。 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { MyCustomTableCell *cell = (MyCustomTableCell *) [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"]; if (cell […]
我似乎无法弄清楚他们是如何工作的。 请帮忙! 我无法弄清楚如何添加.xib的。
iOS 5引入了一种新方法,通过使用NSPrivateQueueConcurrencyType初始化MOC,然后在performBlock:执行获取,在后台线程上快速获取数据performBlock: 核心数据的经验之一就是你不能在线程/队列之间共享pipe理对象。 执行块是否仍然如此performBlock: ? 是以下几点: [context performBlock:^{ // fetch request code NSArray *results = [context executeFetchRequest:request error:nil]; dispatch_async(dispatch_get_main_queue(), ^(void) { Class *firstObject = [results objectAtIndex:0]; // do something with firstObject }); }]; 仍然无法接受,因为我在bg队列和主队列之间共享我的结果数组/对象? 我仍然需要使用托pipe对象ID来做到这一点?
从iOS 5开始,有两种通知样式:横幅和提醒(“旧”样式)。 用户可以在设置中为每个应用程序设置使用哪种样式。 但是,现在默认情况下,通知显示横幅样式。 我正在使用本地通知来提醒即将发生的事件。 横幅在它出现后不久就消失了(而且不太明显,可以点击它),所以对于这些通知,希望将警报样式通知留在屏幕上,直到用户决定一个动作(忽略或去到应用程序)。 有没有办法通过代码或例如Info.plist条目告诉iOS应该默认使用警报样式通知(只要用户还没有configuration其他的东西)? 更新 : 没有信息/文件是不够的,我已经解决了。 我想要一个有权威的人(苹果员工或Erica Sadun的某个人)的论坛/博客文章,说这是不可能的,或者如果可能的话,我想要解决scheme。 像“要求用户更改设置”这样的解决方法也不够好。