문제

모델 세그리 탭을 사용하여 탭 막대 컨트롤러를 열어 모델 세그리트를 사용하는 탭 바 컨트롤러 전에 한 페이지 (X)가 있습니다.또한 탭 막대 컨트롤러의 첫 번째 화면은 X. 와 동일합니다.

X에서 탭 모음 컨트롤러의 첫 번째 페이지에서 데이터를 전달하고 싶습니다.

니다. 스토리 보드 세그리가있는 View Controller에서 Tab 막대 컨트롤러 페이지로 데이터를 전달하고 싶습니다.이 방법이 있습니까?

여기에 해결책이 있습니다.

    locationsHome* vc = [[locationsHome alloc] init];
    UITabBarController* tbc = [segue destinationViewController];
    vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
.

도움이 되었습니까?

해결책

이것은 제 문제를 해결하는 방법입니다.ViewController에서 TabBarController 에서이 메서드로 데이터를 전달할 수 있습니다.

prepareForSegue 메소드 에서이 코드를 사용하십시오.

locationsHome* vc = [[locationsHome alloc] init];
UITabBarController* tbc = [segue destinationViewController];
vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];
.

다음과 같이 :

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    NSString * segueIdentifier = [segue identifier];
    if([segueIdentifier isEqualToString:@"tabbarGo"]){

        locationsHome* vc = [[locationsHome alloc] init];
        UITabBarController* tbc = [segue destinationViewController];
        vc = (locationsHome *)[[tbc customizableViewControllers] objectAtIndex:0];

        etc...

    }
}
.

다른 팁

//if sent to First Tab of Tab Bar Controller
UITabBarController *tabBarController = segue.destinationViewController;
UINavigationController *navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
createTeamViewController *controller = (createTeamViewController *)[[navigationController viewControllers] objectAtIndex:0];

controller.userProfile = self.userProfile;
.

대상 뷰 컨트롤러 (서브 클래 싱 탭 막대 컨트롤러)에 속성을 추가 한 다음 원본 뷰 컨트롤러에서 prepareForSegue 대상 컨트롤러에 정보를 전달합니다.그런 다음 원본보기 컨트롤러의 viewDidLoad에서 전달 된 데이터에 대상 뷰 컨트롤러의 prepareForSegue가 작동하도록 할 수 있습니다.

swift 2.2 의 경우,이 방법으로 수락 된 답변을 수정해야했습니다

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    if (segue.identifier == "userAccountSegue")
    {
        var firstTabViewController: UserAccountViewController = UserAccountViewController()
        let tabViewController: UITabBarController = segue.destinationViewController as! UITabBarController
        firstTabViewController = (tabViewController.customizableViewControllers![0] as! UserAccountViewController)
        firstTabViewController.userObj = arrayForTable![selectedIndex] as? User

    }
}
.

참고 : 위의 코드를 힌트

  • 사용자 는 내 모델 객체 저장 사용자 정보를 저장합니다
  • My View Controller Segue는 Segue=" useraccountsegue "로 Storyboard의 TabViewContoller에 연결됩니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top