拙作、"ICF inputter" http://bit.ly/ICFinputteriOS
これをUniversal対応にすべくアクションしておりました。
※Androidも開発しました… http://bit.ly/ICFinputAndr
このソフトは、「簡易な方法で医療記録をつける」ことに主眼をおいたもので
たとえば在宅医療の患者宅で、パッとメモ程度の記録を残して
後でevernoteなどに連携して編集することを想定しています。
なので、「使い勝手の良さ」をとにかく重要視したかったわけです。
デバイスごとのボタン配置・ボタンの大きさ=フォントの大きさの指定は必須。
私は13個あるパーツの座標の配置とフォント指定をひたすらトライ&エラーしました。
ただ、このソフトはiPhoneのLandscapeポジションで使うことはないと思われます。
それ故
・iPhoneはホームボタンが下のときのPortraitのみでOK.
→回転禁止にしたい。
・iPadはLandspaceにしたほうが使い勝手がよい&Portraitでも使うことが想定されたので
→回転OKにしたい。
なのに、一部条件のときに
-(BOOL)shouldAutorotate; でNOにしても
画 面 が 廻 る
ので困っていたところ。。。
cccookieさんの記事が参考になりました。ありがとうございます。
cccokkieさんは別に親クラスを作っていらっしゃいますが、私はViewContoller.mのところでどうにもならなくて困っていたため、
//邪魔にならないところにつけたす。回転制御。
@interface UINavigationController (rotateControl)
- (BOOL)shouldAutorotate;
- (NSUInteger)supportedInterfaceOrientations;
@end
#import "AppDelegate.h"
@implementation UINavigationController (rotateControl)
- (NSUInteger)supportedInterfaceOrientations
{
return [self.visibleViewController supportedInterfaceOrientations];
}
- (BOOL)shouldAutorotate
{
return [self.visibleViewController shouldAutorotate];
}
@end
を追記したところ、ViewContoroller.mで
-(BOOL)shouldAutorotate{
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
if(appDelegate.iPad == 1){
return YES;
}else{
return NO;
}
}
としていたコードが動くようになりました。
お困りの方の一助となれば幸いです。