【问题标题】:iOS setting view variable from view controller programmaticallyiOS以编程方式从视图控制器设置视图变量
【发布时间】:2013-12-22 10:47:02
【问题描述】:

我创建了一个带有变量的视图并将其加载到视图控制器的 loadView 方法中。调用 loadView 方法后,如何将值从视图控制器传递给视图变量?

LocationView.m

#import "LocationView.h"

@implementation LocationView
@synthesize locationTitle;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        locationTitle = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 300, 20)];
        [self addSubview:locationTitle];
    }
    return self;
}

LocationViewController.m

#import "LocationViewController.h"
#import "LocationView.h"

@interface LocationViewController ()

@end

@implementation LocationViewController
    - (void)loadView
    {
        CGRect frame = [[UIScreen mainScreen] bounds];
        LocationView *locationView = [[LocationView alloc] initWithFrame:frame];
        [self setView:locationView];
    }

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        How do I pass a value to locationTitle here?
    }

【问题讨论】:

    标签: ios variables model-view-controller view viewcontroller


    【解决方案1】:

    您已经为LocationView 对象设置了locationTitle 属性,因此您可以访问它。您唯一需要事先做的就是在实例变量中保留对 LocationView 对象的引用,以便您可以从任何实例方法访问它。

    @implementation LocationViewController {
        LocationView *_locationView;
    }
    
    - (void)loadView
    {
        CGRect frame = [[UIScreen mainScreen] bounds];
        _locationView = [[LocationView alloc] initWithFrame:frame];
        [self setView:_locationView];
    }
    
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        _locationView.locationTitle = @"Test";
    }
    
    @end
    

    或者,由于您将自定义视图分配给视图控制器的主视图,您可以将其转换为:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        ((LocationView *)self.view).locationTitle = @"Test";
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多