Load UIViewController on another UIViewController in UIStoryboard from xib
我有一个UIViewController(说A)。 一个单独的nib文件被加载为该视图控制器上的弹出窗口。 当通过单击UIButton关闭弹出窗口时,我想在UIStoryBoard中加载另一个视图控制器(说B)。 所有的UIViewControllers都在情节提要中。
我尝试了代表模式。 委托方法将self.storyboard返回为nil。
请建议如何处理(从A到B进行表演或从nib文件在导航控制器上推送B的新实例)
这是我用于委托的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | **In CustomViewNewPrescription.h file:** @class CustomViewNewPrescription; @protocol CustomViewNewPrescriptionDelegate <NSObject> -(void)SaveCustomViewNewPrescription; @end @interface CustomViewNewPrescription : UIView{ id<CustomViewNewPrescriptionDelegate>delegate; } @property(nonatomic,strong) id<CustomViewNewPrescriptionDelegate>delegate; **in .m:** - (IBAction)btnCancel:(UIButton *)sender{ [self.delegate SaveCustomViewNewPrescription]; } delegate was synthesized and initialised. **In AddNewRx.h:** @interface AddNewRx : UIViewController<CustomViewNewPrescriptionDelegate>{ } **in AddNewRx.m:** -(void)SaveCustomViewNewPrescription{ //either self performseguewithidentifier .... (or) RxViewController *obj1 = [[self.navigationController storyboard] instantiateViewControllerWithIdentifier:@"RxViewController"]; [self.navigationController pushViewController:obj1 animated:YES]; } |
在SaveCustomViewNewPrescription中,self.storyboard给出nil值
请建议如何在SaveCustomViewNewPrescription中加载另一个视图控制器。
代替:
1 | RxViewController *obj1 = [[self.navigationController storyboard] instantiateViewControllerWithIdentifier:@"RxViewController"]; |
尝试:
1 2 | UIStoryboard *yourStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; RxViewController *obj1 = [yourStoryboard instantiateViewControllerWithIdentifier:@"RxViewController"]; |