gpt4 book ai didi

ios - 在 'window' 类型的对象上找不到属性 'BSViewController *'

转载 作者:行者123 更新时间:2023-12-01 17:19:37 24 4
gpt4 key购买 nike

我正在尝试让 UIButton 显示图像并收到标题错误。

我也想知道为什么()需要 BSViewController ()因为它是由 XCode 创建的?

//
// BSViewController.m

#import "BSViewController.h"

@interface BSViewController () // Why the "()"?
@end

@implementation BSViewController


- (IBAction) chooseImage:(id) sender{


UIImageView* testCard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ipad 7D.JPG"]];
//Property 'window' not found on object of type 'BSViewController *'
self.window.rootViewController = testCard;
[self.window.rootViewController addSubview: testCard];
testCard.center = self.window.rootViewController.center;

NSLog(@"chooseImage");

}


- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end



//
// BSViewController.h

#import <UIKit/UIKit.h>

@class BSViewController;
@interface BSViewController : UIViewController
<UIImagePickerControllerDelegate, UINavigationControllerDelegate>{
IBOutlet UIButton* chooseImage;
}


- (IBAction) chooseImage:(id) sender;

@end

最佳答案

这一行:

    self.window.rootViewController = testCard;

尝试将 imageView 对象指针分配给现有的 viewController 对象指针。你应该得到一个编译器警告。然后在下一行,您有效地尝试将其作为 subview 添加到自身,这可能也会引发警告。

() 表示类的类别扩展。它是对您的公共(public)接口(interface)的扩展,它允许您声明应该对类私有(private)的实体。您应该将大部分界面放在这里,只需将需要公开的内容保留在 .h @interface 中。

您的 BSViewController 类没有名为 window 的属性。所以你不能把它称为 self.window .但在正常情况下,您应该能够像这样获得对窗口的引用:
    UIWindow* window = [[UIApplication sharedApplication] keyWindow];
[window.rootViewController.view addSubview: testCard];

但是,如果您只想将 testCard 放入您的 BSViewController 实例中,则不需要这样做。您只需要引用当前实例的 View :
    [self.view addSubview:testCard];

关于ios - 在 'window' 类型的对象上找不到属性 'BSViewController *',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14420693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com