Storyboard 컨트롤러에서 SeGue가있는 탭 표시 줄에서 데이터 전달 데이터
-
11-12-2019 - |
문제
모델 세그리 탭을 사용하여 탭 막대 컨트롤러를 열어 모델 세그리트를 사용하는 탭 바 컨트롤러 전에 한 페이지 (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에 연결됩니다.