logoSelectionDelegate라고하는 델리게이트가 있습니다. 대리자에는 사용자가 로고를 변경했는지 여부를 나타내는 하나의 함수가 있습니다.특정 탭을 눌렀을 때 델리게이트 설정하기
func userDidChangeLogo(image1: UIImage) {
pickedImage = image1
}
나는 아래와 같이 prepareForSegue 기능을 사용하여 대리자를 설정하는 데 사용 : 지금은 탭 응용 프로그램 변경, 그러나,
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SettingsIdentifier" {
let viewController:SelectALogoViewController = segue.destinationViewController as SelectALogoViewController
viewController.delegate=self
if pickedImage != nil {
viewController.pickedImage = pickedImage
}
}
}
이것은 잘 작동하고 나는 logoSelectionDelegate을 설정할 때 "설정"탭을 누릅니다. 지금은이 작업을 수행하는 방법을 확실 해요, 나는 TabBarController.swift 파일에 내 위임 기능을 구현의 logoSelectionDelegate로 내 TabBarController를 설정 한 후 아래와 같이 logoSelectionDelegate 시도하고 설정 didSelectViewController 방법을 사용 하였다
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) -> Bool {
if (tabBarController.selectedIndex == 1) {
let viewController:SelectALogoViewController! = viewController as? SelectALogoViewController
viewController.delegate=self
if pickedImage != nil {
viewController.pickedImage = pickedImage
}
println("Yes")
}
return true
}
을
나는이 작업을 얻을 수 있으며, 여러분의 의견을 환영/
누가 로고 선택 도구를 설정 탭의 TabBarController 또는 UIViewController로 설정 하시겠습니까? – vacawama
안녕하세요 Vacawama, 저는 방금 NSUserDefaults를 사용하여 로고를 저장하도록 디자인을 변경했습니다. TabBarControllers 사이의 위임은 UINavigationControllers를 사용하여 컨트롤러 사이에 "segue"가 없으므로 까다로운 문제입니다. – Tom
NSUserDefaults는 데이터를 전달하지 않고 환경 설정을 저장하기위한 것입니다. 그것은 효과가 있지만 의도 된 목적은 아닙니다. 내 대답은 여기에 탭간에 데이터를 전달하고 공유하는 방법을 제공합니다. 보세요. http://stackoverflow.com/a/27619420/1630618 – vacawama