2012-05-03 1 views
0

Работа над раскадровки.Как отправить массив в subview, а затем распечатать на этикетке?

Я создал View Controller (раскадровка), а затем в середине контента, добавленного subview из файла xib.

Я хочу добавить xib (UIView), как подзаголовок в ViewController, и отправить объект с данными и распечатать эти данные в метку, но я не знаю, как это сделать.

Вот мой код.

ViewController.h

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController { 
    UIView *subView; 
} 

@property (strong, nonatomic) IBOutlet UIView *subView; //connected over IB 
@end 

ViewController.m

#import "OfferViewController.h" 
#import "OfferLocation.h" 

@interface OfferViewController() 

@end 

@implementation OfferViewController 

@synthesize subView; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    OfferLocation *location = [[OfferLocation alloc] initWithFrame:CGRectZero]; 
    [self.subView addSubview:location]; 
} 
... 
@end 

и вот подтаблицы: OfferLocation.h

#import <UIKit/UIKit.h> 

@interface OfferLocation : UIView{ 
    UIView *view; 
    UILabel *locationLabel;// here is that label taht I want to print into 
} 

@property (nonatomic, retain) IBOutlet UIView *view;// connected over IB 
@property (nonatomic, retain) IBOutlet UILabel *locationLabel; 

@end 

OfferLocation.m

#import "OfferLocation.h" 

@implementation OfferLocation 

@synthesize view, locationLabel; 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) 
    { 
     locationLabel.text = @"some text"; //this is not working 
     NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"OfferLocation" owner:self options:nil]; 
     UIView *tempView = [subviewArray objectAtIndex:0]; 
     [self addSubview:tempView]; 
    } 
    return self; 
} 
+0

Я создал вместо UIView, новый UIViewController (OfferLocation), а затем редактировать только верхнюю часть этого нового контроллера представления и добавить как подвид к середине ViewController.h. Это верно? OfferLocation (UIVIewController) is: http://dl.dropbox.com/u/77033905/subview%20ss.png Я использую зеленую часть как subview. – CroiOS

+0

Это не нормально, я правильно понял. В IB я просто удалил вид отказа и добавил UIView из библиотеки объектов, и теперь все в порядке. Мне нужна помощь в этой проблеме, и я помогу. – CroiOS

ответ

0

подпанель кажется, никогда не будет инициализирован и загружен в представление или представлены. Поэтому вы не видите этого.

Try призванием:

  self.view = self.subView // or subView; // or [self.view addSubview:self.subView // or subview]; 

или что-то похож

Затем объявить UILabel и инициализировать его с тем, что текст, который вы хотите, и добавить его в подвид:

  UILabel *label = [[UILabel alloc] initWithString:@"StackOverflow rocks!"]; 
     [self.subView addSubview:label]; 
// or [self.view addSubview:label]; 

Отличаясь о том, как вам установить subView.

Что именно эти данные вы хотите установить в тексте ярлыка? Если это тип данных, используйте спецификаторы в строке.

 %i // for int 
%@ // for string or object adress 
%c // for char 
%f // for float 

и т.д ...

+0

subView Я создал над IB и подключился, и он работает. Subview выше работает, но я не знаю, как отправить массив в subview и как определить текст в ярлыке, который я уже создал и подключил через IB. – CroiOS

+0

Не уверен, что я Underdtand, что вы имеете в виду ... – MCKapur

+0

мой код в первом сообщении работает все, кроме отправки массива в этот подзадач, который я не знаю, как это сделать, и если вы посмотрите в «OfferLocation.m», вы увидите строку «locationLabel.text = @» некоторый текст »; // это не работает ». Эта метка создается над IB и связана/синтезирована, но я не могу установить текст на эту метку. Это две проблемы, которые у меня есть. Tnx для помощи – CroiOS