gpt4 book ai didi

ios - 从 UIViewController 向 UIView 发送数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:01:30 26 4
gpt4 key购买 nike

非常大的困惑我无法解决......

我可能对一些基本的东西感到困惑..但我就是不能说清楚

这里有两件事

  1. UIViewController
  2. UIViewController 中的 UIView 对象

这是我所做的:

1)创建一个Single View的项目->从 Storyboard中,我将UIView拖到UIViewController上

2) new->创建 myUIViewClass.h 和 myUIViewClass.m 的文件,它们是 UIView 的子类。

3)将我拖出来的UIView的“Custom Class”赋值给myUIViewClass

4) 回到 UIViewController 中,控制并拖动 UIView 到我的 myUIViewController.h 并使其成为这样的导出:

myUIViewController.h

#import <UIKit/UIKit.h>
#import "myUIViewClass.h"

@interface myUIViewController : UIViewController
@property (strong, nonatomic) IBOutlet myUIViewClass *uiview;
@end

4) 在 myUIViewClass.h 中创建属性,它将直接对 UIView 进行一些绘制:

myUIViewClass.h

#import <Foundation/Foundation.h>

@interface myUIViewClass : NSObject

//I want to use this array in - (void)drawRect:(CGRect)rect {} method.
@property (nonatomic, strong) NSArray *arrayInsideUIView;

@end

4) 在 myUIViewClass.m 中,因为它是 UIView 的子类,所以在我运行项目时会调用这行代码:

myUIViewClass.m

- (void)drawRect:(CGRect)rect {
NSLog(@"drawing starts");
}

5) 现在,我希望它是这样的:

- (void)drawRect:(CGRect)rect {
NSLog(@"data to draw with: %@", _arrayInsideUIView);
}

6) 但在执行此操作之前,我需要填充 _arrayInsideUIView。我想从 myUIViewController.m 执行此操作

7) 我该怎么做?

不对1:

myUIViewController.m

- (void)viewDidLoad {
_uiview = [UIView alloc] init];
_uiview.arrayInsideUIView = @[@"one", @"two"];
//the array is not inside UIView, but inside myUIViewClass
}

不对2:

myUIViewController.m

- (void)viewDidLoad {
_uiview = [[myUIViewClass alloc] init];
[self.view addSubview: _uiview];
//this creates duplicate UIView's
}

不对3:

myUIViewController.m

- (void)viewDidLoad {
myUIViewClass *uiviewclass = [[myUIViewClass alloc] init];
uiviewclass.arrayInsideUIView = @[@"one", @"two"];
//No UIView gets created here
}

好迷茫!

最佳答案

您只需要执行以下操作:

- (void)viewDidLoad {
[super viewDidLoad]; //dont forget this
self.uiview.arrayInsideUIView = @[@"one", @"two"];
}

因为 View 连接到 Storyboard, Storyboard处理 View 的创建,所以不需要自己分配/初始化它。

如果你自己分配初始化它(你目前正在做的),你正在替换那个 Storyboard设置,所以你必须自己从头开始完全设置它(框架位置等)这可能不是你想要的.

关于ios - 从 UIViewController 向 UIView 发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690166/

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