2013-10-30 2 views
0

이것은 stackoverflow에 대한 첫 번째 게시물이므로 가능한 한 명확하게하려고 노력할 것입니다. 저는 iPhone 개발에 초보자입니다. 제 질문이 멍청한 것이라면 사전에 변명하십시오. 제 영어 또한 용서해주십시오.중단 점이 활성화 될 때만 코드가 실행됩니다.

UIViewController가 나타나면 즉시 일부 UITextLabel에 날짜 값을 표시하려고합니다. 그러나 dateLabel 및 hourLabel은 업데이트되지 않습니다. 코드는 슈퍼 초기화 직후에 중단 점을 넣는 경우에만 잘 실행됩니다. 나는 그들이 할 시간이 그 전에 속성을 호출하기 위해 노력하고있어 생각 컨트롤러를

- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if(!self) {          //<=============Breakpoint 
     return nil; 
    } 
    [self.datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged]; 

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    NSString* str = [dateFormatter stringFromDate:_datePicker.date]; 
    [_dateLabel setText:str]; 
    NSLog(str); 

    [dateFormatter setDateFormat:@"HH:mm"]; 
    str = [dateFormatter stringFromDate:_datePicker.date]; 
    [_hourLabel setText:str]; 
    NSLog(str); 

    return self; 
} 

을 초기화하기 위해 호출

- (IBAction)setStartPointClicked:(id)sender { 

    _picker = [[CustomDatePicker alloc]initWithNibName:@"CustomDatePicker" bundle:nil]; 

    _picker.delegate = self; 
    [self presentViewController:_picker animated:YES completion:^{ 

    }] ; 

} 

iniWithNibName의 방법의 UIViewController CustomDatePicker를 호출

할당 됨. 각 레이블 문자열을 변경 한 후에 중단 점을 넣으면 업데이트되지 않습니다. 중단 점이 super init과 실행할 코드 사이에있는 경우에만 실행됩니다. 중단 점이 내 응용 프로그램에 객체를로드하는 데 약간의 시간을 제공합니까?

아이디어가 있으십니까? 미리 감사드립니다.

+0

안녕하세요 @laperche, StackOverflow에 오신 것을 환영합니다. 귀하의 질문을 적어 두십시오. – LuisCien

답변

0

viewDidLoad 대신 코드를 입력하십시오.

0

는 다음과 같이 변경을 시도하십시오 :

// The init... method. This is the iOS standard way of writing it 
- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if(self) { 

    } 

    return self; 
} 

// viewDidLoad method 
-(void)viewDidLoad { 

    [self.datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged]; 

    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    NSString* str = [dateFormatter stringFromDate:self.datePicker.date]; 
    [self.dateLabel setText:str]; 
    NSLog(str); 

    [dateFormatter setDateFormat:@"HH:mm"]; 
    str = [dateFormatter stringFromDate:_datePicker.date]; 
    [self.hourLabel setText:str]; 
    NSLog(str); 
} 

희망이 도움이!

+0

예, 도움이됩니다. 매력처럼 작동합니다! 대단히 감사합니다. didView는 didViewLoad가 자동으로로드 대신 호출하는 것을 알았습니다. – laperche

관련 문제