关于iPhone:从Xib将UIViewController加载到UIStoryboard中的另一个UIViewController上

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"];