通过SWRevealViewController将参数从一个ViewController传递到另一个ViewController。这不是关于在前端控制器和后端控制器之间传递参数,而是从另一个ViewController (firstViewController)传递到前端(frontViewController。参考图片。segue (在触摸按钮时)尝试将字符串值传递给前端控制器
图片在这里:http://portwire.com/stackoverflow/storyboard.png
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
SWRevealViewController *destinationViewController = (SWRevealViewController *)segue.destinationViewController;
UINavigationController *navegationController = (UINavigationController *)destinationViewController.frontViewController;
//UUPS!! SWRevealViewController.frontViewController is nil
//How to access destination UIViewController????????
FrontViewController * frontViewController = (FrontViewController *)navegationController.topViewController;
frontViewController.fromString = @"String from previous view";
}发布于 2017-05-31 17:23:00
对于Swift 3.0:
发布于 2016-11-15 02:42:27
我有第一个LoginViewController -> SWRevealViewController -> NavigationController -> HomeViewController (HomeViewController是frontViewController)
从LoginViewController到SWRevealViewController,我有一个段。为了传递数据,我在prepareForSegue中使用了适合我的代码。
if ([[segue identifier] isEqualToString:@"homeVC"]) {
SWRevealViewController *destination = [segue destinationViewController];
[destination loadView];
UINavigationController *navViewController = (UINavigationController *) [destination frontViewController];
if ([navViewController.topViewController isKindOfClass:[HomeViewController class]]) {
HomeViewController* homeVC = (HomeViewController*)navViewController.topViewController;
homeVC.title = @"Test1";
} }希望能对你有所帮助!
发布于 2015-03-07 23:15:23
我认为你可以使用委托来做这件事。
在您的前视图控制器中定义一个协议,并让第一个视图控制器符合它。
https://stackoverflow.com/questions/24701633
复制相似问题