我想删除一个UIButton的图像,并在运行时将其替换为标题.虽然我能够将标题添加到UIButton,但我无法删除图像.有没有人有一些建议?
我使用SplitView模板创建了我的iPad应用程序.我想知道将我的应用程序限制为横向模式的最佳方法是什么?
我试过shouldAutorotateToInterfaceOrientation:在DetailViewController.m中重写 方法
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Run Code Online (Sandbox Code Playgroud)
但是4.2 GM仍然是有缺陷的,它无法显示控制器视图.我还有其他选择吗?
提前致谢.
UPDATE1
我已经提交了错误报告: 错误ID#8620135
我的应用程序几乎已经完成,我必须找到一个工作周期,因为我认为他们不会在4.2正式发布之前解决这个问题(GM已经出局!)
为了重新创建bug,只需在任何UIViewControllers(RootViewController或DetailViewControllers)中使用SplitView模板并覆盖上面的方法
UPDATE2
我找到了解决办法.(有关完整的解决方法,请参阅UPDATE3)
设置UISupportedInterfaceOrientations仅支持横向,这将强制应用程序以横向模式启动,允许DetailViewController正确启动(因此显示正确)
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
Run Code Online (Sandbox Code Playgroud)
但是如果你旋转设备,它会变成肖像模式!!!,所以仍然需要覆盖 shouldAutorotateToIntercafeOrientation:如上所述
讨论:
如果这不是一个错误,我会期望在视图控制器不支持的方向启动应用程序时出现警告或执行错误,异常或其他问题.此外,为什么只有DetailViewController不显示?如果这是规范,那么RootViewController也应该无法加载.你不觉得吗?谢谢你的帮助...;)
UPDATE3
经过进一步测试后,我意识到上述解决办法在某些情况下不起作用.例如,当设备处于横向状态时启动应用程序将无法正常工作!真正的问题似乎是在iOS4.2GM中,UISplitViewController需要其所有控制器在其加载时具有所有旋转.因此有必要欺骗他,以便在横向模式下加载,然后不允许他旋转其视图控制器.
所以这是烦人的iBug的新解决方案.
第1步:像这样设置Info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
Run Code Online (Sandbox Code Playgroud)
Step2在DetailViewController.m或.h中设置一个新标志(来自SplitView模板)
BOOL lockRotation = NO; //WORK-ARROUND: Bug ID# 8620135.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//WORK-ARROUND: Bug ID# 8620135.
if (lockRotation) {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}else{
return YES;
}
}
- (void)viewDidLoad {
[super viewDidLoad];
//set NO here since this …Run Code Online (Sandbox Code Playgroud) 任何人都可以在目标C中为正常的类而不是类别或协议提供前向声明的示例吗?
class objective-c forward-declaration objc-protocol objc-category
我想向所有使用应用程序注册的设备发送相同的消息但是如何在不进行多个连接的情况下发送它们...
我目前的PHP代码:
ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp)
{
print "Failed to connect $err $errstr\n";
return;
}
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
fwrite($fp, $msg);
Run Code Online (Sandbox Code Playgroud) 更确切地说,这对我不起作用:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-ddTHH:mm:ssZ"];
NSDate *prevday = [formatter dateFromString:@"2011-04-07T22:00:48Z"];
Run Code Online (Sandbox Code Playgroud)
prevday正在返回NIL.
iphone ×3
objective-c ×3
class ×1
cocoa-touch ×1
ipad ×1
landscape ×1
orientation ×1
php ×1
uibutton ×1