0

我有一个 UIViewController(说 A)。一个单独的 nib 文件作为弹出窗口加载到此视图控制器上。当通过单击 UIButton 关闭弹出窗口时,我想在 UIStoryBoard 中加载另一个视图控制器(比如 B)。所有的 UIViewControllers 都在故事板中。

我尝试了代表模式。委托方法将 self.storyboard 返回为nil

请建议如何处理(从 A 到 B 执行 egue 或从 nib 文件在导航控制器上推送 B 的新实例)

这是我用于委托的代码:

**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 中加载另一个视图控制器。

4

1 回答 1

1

代替:

RxViewController *obj1 = [[self.navigationController storyboard] instantiateViewControllerWithIdentifier:@"RxViewController"];

尝试:

UIStoryboard *yourStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
RxViewController *obj1 = [yourStoryboard instantiateViewControllerWithIdentifier:@"RxViewController"];
于 2013-08-07T17:56:09.080 回答