【仅供内部供应商使用,不提供对外解答和培训】

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
title打开FR设置界面
- (void) setting {
  //定义一个注销按钮
  IFFrameAppSettingItem *logoutItem = [[IFFrameAppSettingItem alloc] initWithTitle:@"注销" andAction:^(UITableViewCell *selectedCell) {
    //注销
    [IFIntegrationUtils logOut];
    //让页面消失,这里需要写一个获取当前最前端视图(当前就是设置界面)的方法,后面会有示例,也可以把设置页面在类里定义成变量能引用到。
    [[self topViewControllerWithRootViewController:[UIApplication sharedApplication].delegate.window.rootViewController] dismissViewControllerAnimated:YES   completion:nil];
  }];
 
  //把自定义注销按钮放大数组里,后面给创建设置页面使用
  NSArray *logOutSection = [[NSArray alloc] initWithObjects:logoutItem, nil];
  NSArray *customItems = [[NSArray alloc] initWithObjects:logOutSection, nil];
 
  //定义设置页面
  IIFFrameAppSettingViewController *settingViewController; = [[IFFrameAppSettingViewController alloc] initWithCustomItems:customItems];
  
  //根据手机/Pad设置不同的弹出方式
  BOOL isPhone = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone;
  UIViewController *topViewController = [self topViewControllerWithRootViewController:[UIApplication sharedApplication].delegate.window.rootViewController];
  if(isPhone) {
    [topViewController.navigationController pushViewController:settingViewController animated:YES];
  } else {
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:settingViewController];
    navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
    [topViewController presentViewController:navigationController animated:YES completion:nil];
  }
}
//获取当前顶部视图
- (UIViewController*)topViewControllerWithRootViewController:(UIViewController*)rootViewController {
  if ([rootViewController isKindOfClass:[UITabBarController class]]) {
    UITabBarController* tabBarController = (UITabBarController*)rootViewController;
    return [self topViewControllerWithRootViewController:tabBarController.selectedViewController];
  } else if ([rootViewController isKindOfClass:[UINavigationController class]]) {
    UINavigationController* nav = (UINavigationController*)rootViewController;
    return [self topViewControllerWithRootViewController:nav.topViewController];
  } else if (rootViewController.presentedViewController) {
    UIViewController* presentedViewController = rootViewController.presentedViewController;
    if([presentedViewController isKindOfClass:[UIAlertController class]]) {
      return rootViewController;
    }
    return [self topViewControllerWithRootViewController:presentedViewController];
  } else {
    return rootViewController;
  }
}

 效果图如下:

Image AddedImage Added

Image AddedImage Added