하여 호출 할 수 있는지 확실하지 않았다. controllerA가 controllerB로 팝업되었다고 가정 해 봅시다. 귀하의 컨트롤러 B가 팝업으로 이해되었으며 처리기 - tourButton
이 포함 된 버튼이 있습니다.
이 경우 컨트롤러 B에 대리인을 추가해야합니다. 그래서 클래스와 구조 당신의 이름에 대한 잘 모르겠지만, (내 경우 controllerB에서) 컨트롤러를 당신의 팝업을 열고 @interface 전에 다음 줄을 추가 controllerB에서
@protocol PopUpControllerDelegate <NSObject>
- (void)tourButtonTouched;
@end
:
@interface YOUR_POPUP_CONTROLLER_CLASSNAME_OR_CLASS_B : UIViewController
@property (nonatomic, assign) id <PopUpControllerDelegate> delegate;
그래서 controllerA에는 controllerB 인스턴스가 있어야합니다. 메모리에 할당 한 후이 인스턴스를 controllerA에 대리자를 Asign :
controllerB.delegate = self;
은 또한 당신이 controllerA 클래스에 위임 콜백 구현이 필요합니다 직접 밀어하면 해당 I에 의해 (앱 적용 할 경우
- (void)tourButtonTouched
{
// Here will be you code that push 3rd controller. Be sure that self (current) controller has navigation parent controller. Because in another push method will no work.
[self.navigationController pushViewController:IBTHirdViewController animated:YES];
// Use present if there is no navigation controller: [self presentViewController:IBTHirdViewController animated:YES];
}
그 이유는 push segue를 사용하지 않는 이유는 무엇입니까?) 그러면 푸시 할 객체가 있어야합니다. 방금 이름이있는 물건이 없습니다. IBTHirdViewController를 만들고 밀어 넣고 작동하는지 확인하십시오. 새 질문을위한 시간이 아닌 경우 – Gruntcakes
이 버튼은 자체 xib 파일로 팝업되므로 두 개의 스토리 보드에 있기 때문에 segue를 수행하는 방법을 잘 모름 – Packy
Ok . 내가 말했던 것을 시도해보십시오. (PS는 오타가 아닌 경우 두 개의 다른 스토리 보드를 가져서는 안되며 여러 xib 또는 스토리 보드를 xib와 조합하여 사용할 수 있습니다.) 그러나 여러 스토리 보드는 상황에 따라 솔루션이 있지만 아마 그렇지 않을 수도 있습니다. 당신이 원하는) – Gruntcakes