2013-02-19 2 views
0

xcode로 아이폰 용 앱을 만드는 법을 배우고 있습니다. 나는 2-3 주 동안 이것을 해왔으므로 나는 이것에 대해 완전히 새로운 것이다. 지금 당장 나는 다른 종류의 카운터를 포함하는 카운터를 만들려고 결정했습니다. 각 카운터는 자체 뷰를 가지고 있습니다. 이들 사이의 탐색은 탭 표시 줄을 통해 수행됩니다.다른보기를 통한 IBaction

4 개의보기가 있으며 마지막보기에는 다른 3 개의보기의 각 카운터에 재설정 단추가 포함되어 있습니다.

가능합니까? 이 경우 올바른 방향으로 나를 가리 키시겠습니까?

는 지금은이

-(IBAction)Reset:(id)sender{ 
    counter = 0; 
    count.text = [NSString stringWithFormat:@"%i", counter]; 

내가의 뷰 1의 카운터를 재설정하기 위해 뷰 4를 가정 해 봅시다에서 위를 할 수있는 동일한보기에서 카운터를 재설정하기 위해 사용하고 있습니다?

답변

0

존에서이 방법을 추가, 당신이 NSUserDefaults에보고해야한다 의심한다. 이것이 첫 번째 과제라면 선생님이 싫어할 것입니다.

솔직히 말해서 위의 내용은 익숙해 져서 좋은 MVC 기본을 우회하는 나쁜 습관이라고 생각합니다. 이 새로운 것을 보았으므로 좋은 MVC 기본에 초점을 맞추어야합니다. 피라미드 상단의 View 컨트롤러가 뷰를 제어합니다. 이 경우, UITabBarController가 viewController (tab) 묶음을 제어하고 이들 ViewController가 뷰를 제어하는 ​​레이어가 하나 더 있습니다.

UITabBarController의 "viewControllers"속성을 사용하여 이러한 viewController (탭) 사이를 이동합니다.

각 뷰 컨트롤러 (UIViewController 하위 클래스)는 IB와 코드로 작성한 다음 UITabBarController에 첨부해야합니다. 그런 다음 IB ID 관리자의 해당 뷰 컨트롤러 클래스를 해당 UIViewController 하위 클래스 이름으로 변경해야합니다.

그런 다음 레이블과 액션을 적절한보기 컨트롤러에 추가하고 코드의 해당보기 컨트롤러에 연결합니다.

당신은 [self.tabBarController.viewControllers objectAtIndex는 : 1] 사용할 수 있습니다 당신의 ViewController 4에서 어떤 코드 바로 가기는 여기에 없습니다 1.

보기에 카운터를 재설정 할 수 있습니다. 적절한 MVC를 배우면 나중에 물지 않습니다.

희망이 도움이되었습니다.

+0

감사합니다. 만약 내가 그것에 시간을 좀 내게 도움이 될 것입니다. –

-1

예, 가능합니다. 그러나 당신의 질문은 그렇게 명확하지 않습니다. 내 이해에 따라 네 번째보기에는 새로 고침이라는 단추가 있으며 나머지 단추를 클릭하면 3 개의보기가 앞으로 시작하는 내용으로 바뀌어야합니다.

간단한 방법으로 Refresh button 네 번째보기에서 releaseUITabbarController을 클릭하고 다시 추가하십시오.

또는 다른 모든 화면에서 새로 고침보기를 호출해야합니다. w.r.t UITbabarController Delegate 메서드.

+0

내가 명확히 설명해 드리겠습니다. 카운터를 만들려고하기 때문에 각 뷰에는 해당 뷰에서 탭 한 각 단추를 계산하는 숫자를 나타내는 텍스트 필드가 있습니다.예를 들어 4 번보기의 재설정 버튼을 누르기 만하면보기 1의 카운터를 0으로 재설정하고 싶습니다. 동일한보기에있는 경우 - (IBAction) 재설정 : (id) 보낸 사람 { counter = 0; count.text = [NSString stringWithFormat : @ "% i", counter]; 하지만 어떻게 4 번보기에서 그 카운터를 재설정 할 수 있습니까? –

+0

확인. Tabbar를 변경하는 동안 각보기에 대해 "- (void) viewWillAppear : (BOOL) animated"메서드를 호출합니다. 새로 고침 버튼을 클릭하면 NSUserdefaults에 플래그를 저장하고보기에 조건을 제공합니다. – Madhu

+0

안녕하세요, 귀하의 회신에 감사드립니다. 완전히 새로운이 메신저, 여전히 기본 실험 .. 그걸 어떻게 할 수 말해 줄래? –

-1
- (void)refresh 
    { 
    NSLog(@"Refresh Data"); 
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"data_refresh"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 

// 모든 조회 수

- (void)viewWillAppear:(BOOL)animated 
     { 
     [super viewWillAppear:animated]; 

      if ([[NSUserDefaults standardUserDefaults] objectForKey:@"data_refresh"] && [[[NSUserDefaults standardUserDefaults] objectForKey:@"data_refresh"] boolValue]) { 
      count.text = @"0"; // Here you can modify the data as you expected. 
     [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"data_refresh"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
     } 
    } 
+0

만약 그가 ObjC을 처음 접한다면 의심 스럽습니다. 그는 NSUSerDefaults를 사용하여 좋은 MVC 기본을 우회해야합니다! – Spectravideo328

+0

이 일종의 자동 재설정입니까? 나는 리셋하기 위해 버튼을 누를 수 있기를 원한다. 그 버튼은 4 번째 화면에 표시 될 것이며 영향을 받게 될 카운터는 1입니다. –