过渡到以编程方式查看ios

时间:2013-02-17 19:54:00

标签: iphone ios objective-c uiview uistoryboardsegue

我有一个执行任务的视图,当任务完成时,活动指示器将变为隐藏状态,我想在活动完成时将用户发送到另一个视图,或者如果不成功则给用户一个错误。到目前为止,我正在使用If Else语句来提供成功警报或错误警报。没有按钮可以点击或任何东西,只需在活动完成后,用户将被发送到另一个视图,沿途传递一些变量。

如何在完成后将用户发送到另一个视图?

3 个答案:

答案 0 :(得分:1)

如果您使用navigationcontroller:

 [self.navigationController pushViewController:theNextViewController animated:YES]; 

对于Storyboard,请查看文档中的方法。

答案 1 :(得分:1)

详细阐述AlexWien的回答......

  • 创建所需的视图控制器或表视图控制器类 用户完成后去。
  • 为要传入的数据创建一些属性。

@protocol UpdatePricesDelegate;

@interface NXUpdatePricesViewController : UITableViewController

@property (strong, nonatomic)   NSArray *calculationProducts;
@property (strong, nonatomic)   NSArray *filteredCalculationProducts;

@property (weak, nonatomic)     id<UpdatePricesDelegate>delegate;

@end

@protocol UpdatePricesDelegate <NSObject>

- (void)updatePricesController:(NXUpdatePricesViewController *)controller didUpdateCalculationProducts:(NSArray *)calculationProducts;

@end

  • 当您准备好显示控制器时(可能在您的If / Else语句中),实例化该类(不要忘记#import“MyClassName.h”)并将属性设置为您想要传递的变量。 / LI>
  • 以模态方式显示课程(示例包括导航控制器),或者如果要推动视图,请使用导航控制器。

NXUpdatePricesViewController *updatePricesController = [[NXUpdatePricesViewController alloc] initWithStyle:UITableViewStyleGrouped];
updatePricesController.delegate = self;
updatePricesController.calculationProducts = self.calculationProducts;

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:updatePricesController];
navigationController.modalPresentationStyle = UIModalPresentationFormSheet;


[self.navigationController presentViewController:navigationController animated:YES completion:nil];

NXCalculationViewController *calculationController = [[NXCalculationViewController alloc] init];
calculationController.calculation = calculation;
[self.navigationController pushViewController:calculationController animated:YES];

答案 2 :(得分:0)

我实际上让它工作,并使用此方法将变量传递给另一个视图:

DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailView"];
[detail setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
detail.videoURL = outputURL;