Установить метку в другом представлении для сохраненного NSDate - PullRequest
0 голосов
/ 31 января 2012

У меня есть приложение с несколькими представлениями. На первом я создаю и NSDate следующим образом:

NSString *storeDate = [[NSDate date] description];

В представлении 2 в viewDidLoad: я хочу установить значение метки (розетка и т. Д., Созданные и связанные) на значение storeDate, используя

timeRecord.text = storeDate;

Я импортировал свои виды, но storeDate помечается как необъявленный.

Есть идеи, как мне заставить это работать?

SOFViewController.h

#import <UIKit/UIKit.h>

@interface SOFViewController : UIViewController {

}
-(IBAction) storeDateBut: (id) sender;
-(IBAction) goToView2: (id) sender;
@property (nonatomic,retain) NSString *storeDate;

@end

SOFViewController.m

#import "SOFViewController.h"
#import "view2.h"

@implementation SOFViewController
@synthesize storeDate;

-(IBAction) storeDateBut: (id) sender{

    self.storeDate = [[NSDate date] description];

}

-(IBAction) goToView2: (id) sender{
    view2 *myview2 = [[view2 alloc] initWithNibName:@"view2" bundle:nil];
    [self.view addSubview:myview2.view];

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

}

- (void)viewDidUnload {

}

- (void)dealloc {
    [super dealloc];
}

@end

view2.h

#import <UIKit/UIKit.h>


@interface view2 : UIViewController {
    IBOutlet UILabel *dateLabel;

}

-(IBAction) goToView1: (id) sender;
@property (nonatomic, retain) IBOutlet UILabel *dateLabel;

@end

view2.m

#import "view2.h"
#import "SOFViewController.h"


@implementation view2
@synthesize dateLabel;

-(IBAction) goToView1: (id) sender{

    SOFViewController *mySOFViewController = [[SOFViewController alloc] initWithNibName:@"view2" bundle:nil];
    [self.view addSubview:mySOFViewController.view];



}

- (void)viewDidLoad {

    dateLabel.text = SOFViewController.storeDate;
    [super viewDidLoad];
}




- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    }

    - (void)viewDidUnload {
        [super viewDidUnload];

    }


    - (void)dealloc {
        [super dealloc];
    }


    @end

Ответы [ 3 ]

1 голос
/ 31 января 2012

Область действия storeDate ограничена методом view1. Таким образом, вы не можете получить к нему доступ другие представления или даже другой метод того же класса. Вы должны сделать свойство storeDate, тогда вы можете получить к нему доступ в любом месте, как

@interface view1:UIView {} 
@property(nonatomic, retain) NSString *storeDate;
@end

в реализации использовать

@synthesize storeDate;

теперь установите значение storeDate как

self.storeDate = [[NSDate date] description];

и вы можете использовать его в любом месте.

0 голосов
/ 09 февраля 2012

используйте этот код.

в представлении 2.

#import "view2.h"
#import "SOFViewController.h"

@implementation view2
@synthesize dateLabel;

-(IBAction) goToView1: (id) sender{

  SOFViewController *mySOFViewController = [[SOFViewController alloc]                 initWithNibName:@"view2" bundle:nil];
  [self.view addSubview:mySOFViewController.view];
}

- (void)viewDidLoad {

   dateLabel.text = mySOFViewController.storeDate;
   [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
    [super viewDidUnload];

}


- (void)dealloc {
    [super dealloc];
}

@end
0 голосов
/ 31 января 2012

Я предполагаю, что из вашего вопроса вы имеете в виду, что в вашем приложении есть несколько контроллеров представления.

storeDate является локальным по отношению к методу, в котором вы его объявили. Я думаю, вам нужно прочитать о переменная область видимости в Objective-c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...