1

ホームボタン/オンオフではなくボタンを使用して、アプリから画面を保存しようとしています。を使用したコードでエラーが発生しますself

「タイプ「...myviewcontroller」のオブジェクトにプロパティウィンドウが見つかりません

- (IBAction)saveto:(id)sender {
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
    UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
[data writeToFile:@"my.png" atomically:YES];

(画像ビューは.hでアウトレットとして宣言されています)

私はここで基本的な何かが欠けていることを知っていますが、それを理解することはできません、どんな助けも大いに受けました

4

1 に答える 1

2

そのself.view.window私はかなり確信しています。:)

- (IBAction)saveto:(id)sender {
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
        UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
    else
        UIGraphicsBeginImageContext(self.window.bounds.size);
    [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSData * data = UIImagePNGRepresentation(image);
    [data writeToFile:@"my.png" atomically:YES];
}

WindowはUIViewのプロパティです。

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

windowレシーバーのウィンドウオブジェクト。存在しない場合はnil。(読み取り専用)

@property(nonatomic、readonly)UIWindow * windowディスカッションビューがまだウィンドウに追加されていない場合、このプロパティはnilです。

可用性iOS2.0以降で利用できます。UIView.hで宣言

UIViewControllerにはwindowプロパティがありません。ただし、ウィンドウプロパティを持つビュープロパティがあります:)

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html

于 2012-06-11T13:15:25.133 に答える