2009-12-29 2 views
0

두 개의 ViewController가 있습니다. RedButtonViewController와 TweetViewController가 있습니다. RedButtonViewController는 Textlabels에 임의의 숫자를 생성하고 TweetViewController에 숫자 또는 레이블을 사용하려고합니다. 내가 어떻게 이걸 만들 수 있니?하나의 ViewController에서 임의의 숫자를 가져 와서 두 번째 ViewController에서 사용하십시오. - Update

도움 주셔서 감사합니다.

내 TweetViewController는 RedButtonViewController이 코드가 열립니다 :

- (IBAction)pushRedButton:(UIButton *)sender { 

    int ZahlDerToten; 
    ZahlDerToten = arc4random() % 1000000; 

    outputLabel.text = [NSString stringWithFormat:@"You killed %d people.", ZahlDerToten]; 

답변

1

가 TweetViewController 및 설정에 속성을 만듭니다 여기

- (IBAction)TweetViewController:(id)sender { 
    TweetViewController *Tweet = [[TweetViewController alloc] initWithNibName:nil bundle:nil]; 
    [self presentModalViewController:Tweet animated:YES]; 
} 

내가 난수를 생성하는 방법에 대한 exemple입니다 그것을 제시하기 전에 :

- (IBAction)TweetViewController:(id)sender { 
    // Note: don't put leading capitals on a local variable 
    TweetViewController *tweet = [[TweetViewController alloc] initWithNibName:nil bundle:nil]; 
    tweet.randomNumber = [self generateRandomNumber]; 
    [self presentModalViewController:tweet animated:YES]; 
    // Note: You were leaking the view controller 
    [tweet release]; 
} 

다른 해결책 -initWithNumber: ("수"보다 조금 더 자세한 설명 아마 무엇인가라는 새로운 이니셜을 만드는)와 같이 호출하는 것이 얼마나 나는 보통 이런 종류의 일을 할) :

- (IBAction)TweetViewController:(id)sender { 
    TweetViewController *tweet = [[TweetViewController alloc] initWithNumber:[self generateRandomNumber]]; 
    [self presentModalViewController:tweet animated:YES]; 
    [tweet release]; 
} 

-initWithNumber 다음과 같이 보일 것이다 :

- (TweetViewController *)initWithNumber:(NSInteger)number { 
    self = [super initWithNibName:nil bundle:nil]; 
    if (self != nil) { 
     self.number = number; 
    } 
    return self; 
} 
+0

답변 감사합니다. 내가 두 번째 방법을 시도하고 항상 initWithNumber를 사용할 때 그는 줄에서 말한다 : self.number = outputlabel; member 'number'에 대한 요청이 구조체 또는 유니온이 아니기 때문입니다 아마도 문제는 내가 코드에서 대체해야하는 것이 무엇인지 알 수 없다는 것입니다. 어떻게 임의의 코드를 생성합니까? 질문에 위의 번호. – Flocked

+0

이 코드에서는 예제와 같이 "number"라는 속성이 있다고 가정했습니다. TweetViewController가이 숫자를 가지고있는 ivar를 가지고 있다고 가정합니다. 거의 확실하게 라벨 자체를 지나쳐서는 안됩니다. 레이블을 사용하여 데이터를 저장하지 마십시오. 데이터를 ivars에 저장하십시오. 그 ivars에서 레이블 '값을 설정합니다. 이것은 코코아가 의존하는 Model-View-Controller 패턴의 핵심 기능입니다. 그래서 위의 "숫자"를 UILabel로 변경했다면 그렇게하지 마십시오. 귀하의 예제에서 NSUInteger해야하며 countOfKilledPeople과 같은 속성이 있어야합니다. –

관련 문제