0

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

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

4

3 回答 3

1

如果您使用导航控制器:

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

对于 Storyboard,请在文档中查找方法。

于 2013-02-17T20:01:01.630 回答
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")并将属性设置为您要传递的变量。
  • 以模态方式呈现类(示例包括导航控制器),或者如果您想推送视图,请使用导航控制器。

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];
于 2013-02-18T05:07:32.087 回答
0

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

DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailView"];
[detail setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
detail.videoURL = outputURL;
于 2013-02-21T11:16:29.630 回答