iPad和uipickerview(或uidatePickerview)
-
02-10-2019 - |
题
有人在3.2 SDK中使用Uipicker有任何运气吗?我正在将iPhone应用程序移植到iPad中,这是我似乎无法使用的一件事。我试过了...
- 创建动作表,将挑选器添加为子视图并显示。
- 在上面的动作表上创建,使其成为通用ViewController的视图,并将VC添加到UIPOPOVER中
- 仅将Picker拍摄通用ViewController的视图,并将VC添加到UIPOPOVER中
使用动作表,它甚至没有尝试绘制它。在弹出视图中,它尝试绘制但无法正确渲染。
只是想检查一下是否有人完成了这一目标,如果是这样。
谢谢大家!
解决方案
我是上述教程的作者。为了使选择器在弹出窗口中工作,并将所选值添加到主视图中的文本框中,则需要使用协议。我创建了一个示例项目来展示这一点。我将很快就此创建一个教程。
其他提示
我只是为此而苦苦挣扎了大约24小时,并通过遵循本教程和他提到他的UitableView的任何位置来使它起作用,只需考虑一下您的Uipickerview并替换适当的信息即可。
马修·凯西(Matthew Casey) - 教程:iPad上的控制权简介
简而言之,在iPad上,您可以在弹出式控件中显示拾音器的唯一方法。在弹出窗口的内容视图控制器(Picker View的视图控制器)和主应用程序的视图控制器之间共享数据是我不知道的位。 (即获取选择器的“ didSelectrow”方法来影响主视图控制器中的对象,例如uitextfield或uibutton。)这是通过创建自定义协议将“ didSelectrow”方法转发到主视图控制器的方法来处理的。
我绝不是这些东西的专家,所以我逐步介绍了该教程,它最终确实有效。在我发现教程之前,我迷路了。 (我也在iPhone上移植到iPad。)
当您想在视图控制器之间共享数据时...解决方案是NSNotificationCenter。
我知道这并不能总体回答这个问题,但是如果我想在视图控制器之间共享数据:在发送视图控制器中
NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];
在接收视图控制器中:放置在ViewDidload中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];
然后添加此功能:
-(void)imSharing:(NSNotification *)notification {
NSDictionary *dictionary = [notification userInfo];
//do something with [dictionary objectForKey:@"shared"];
dictionary = nil;
}
这可用于在2个视图控制器之间共享数据...好吧,无论如何,少量数据。
否则在这里查找有关的更多信息 在视图控制器之间共享数据
您正在使用接口构建器吗?使用笔尖文件中的Xcode中创建新的UiviewController子类,然后拖动Uipicker要容易得多。然后,您需要在弹出窗口中介绍视图控制器。动作表并非设计为具有子视图,所以不要那样做。
我做到了:查看第三个屏幕截图 C64油漆.
感谢大家的回答。因此,尽管我不能说最初的问题是什么,但我从头开始就开始了问题,然后才能正常工作。我制作了全新的视图控制器,并将它们显示在弹出窗口中,并且效果很好。似乎是制作通用应用程序的艰难点之一。
如果您在iPad上创建它,则Uipickerview将工作起来:
UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];
其他一些尺寸似乎确实有效。但是Cgrectzero在iPad上不起作用 - 即使它确实在iPhone中起作用。