[Desenvolvimento de IOS] Personalize a barra de navegação da página de localização de seleção de Rongyun e a página de informações de localização

[Desenvolvimento de IOS] Personalize a barra de navegação da página de localização de seleção de Rongyun e a página de informações de localização

  1. Selecione a página de localização
    • Crie uma subclasse de RCLocationPickerViewController: RCDLocationViewController, você pode personalizar os botões esquerdo e direito da barra de navegação
- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"自定义左按钮" style:UIBarButtonItemStyleDone target:self action:@selector(leftItemDidPressed:)];
    self.navigationItem.leftBarButtonItem.tintColor = [UIColor redColor];
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"自定义右按钮" style:UIBarButtonItemStyleDone target:self action:@selector(rightItemDidPressed:)];
    self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
}
- (void)leftItemDidPressed:(id)sendr {
    [self dismissViewControllerAnimated:YES completion:nil];
}
- (void)rightItemDidPressed:(id)sendr {
    [super rightBarButtonItemPressed:nil];
}
  • Substitua os seguintes métodos na subclasse da página de bate-papo e defina o proxy para apresentar ao objeto da subclasse.

/*!
 扩展功能板的点击回调

 @param pluginBoardView 输入扩展功能板View
 @param tag             输入扩展功能(Item)的唯一标示
 */
- (void)pluginBoardView:(RCPluginBoardView *)pluginBoardView clickedItemWithTag:(NSInteger)tag {
    switch (tag) {
           case PLUGIN_BOARD_ITEM_LOCATION_TAG: {
               RCDLocationViewController *vc = [[RCDLocationViewController alloc] init];
               vc.delegate = self;
               UINavigationController *navi = [[UINavigationController alloc] initWithRootViewController:vc];
               [self presentViewController:navi animated:YES completion:nil];
           }
               break;

           default:
               [super pluginBoardView:pluginBoardView clickedItemWithTag:tag];
               break;
       }
}
  • A subclasse da página de bate-papo precisa seguir o proxy RCLocationPickerViewControllerDelegate e implementar o método:

    
    /*!
    地理位置选择完成之后的回调
    
    @param locationPicker 地理位置选取的ViewController
    @param location       位置的二维坐标
    @param locationName   位置的名称
    @param mapScreenShot  位置在地图中的缩略图
    
    @discussion
    如果您需要重写地理位置选择的界面,当选择地理位置完成后,需要调用此回调通知RCConversationViewController定位已完成,可以进一步生成位置消息并发送。
    */
  • (void) locationPicker: (RCLocationPickerViewController ) locationPicker
    didSelectLocation: (CLLocationCoordinate2D) location
    locationName: (NSString
    ) locationName
    mapScreenShot: (UIImage ) mapScreenShot {
    RCLocationMessage
    locationMessage =
    [RCLocationScreenMessage map: locationImage location: locationHot
    [self sendMessage: locationMessage pushContent: nil];
    }
2. 位置信息页面
- 创建 RCLocationViewController 的子类LocationViewController

```objective-c
- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"自定义左按钮" style:UIBarButtonItemStyleDone target:self action:@selector(leftItemDidPressed:)];
    self.navigationItem.leftBarButtonItem.tintColor = [UIColor redColor];

    self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
}
- (void)leftItemDidPressed:(id)sendr {
    [self dismissViewControllerAnimated:YES completion:nil];
}
  • Substituir o retorno de chamada da mensagem de localização do clique na página da conversa

/ **

  • Abra a localização geográfica. Os desenvolvedores podem reescrever e abrir o mapa para exibir a localização com base na latitude e longitude. Use o mapa integrado por padrão
  • @param locationMessageContent location message
    * /
    • (void) presentLocationViewController: (RCLocationMessage ) locationMessageContent {
      // LocationViewController, RCLocationViewController e
      LocationViewController
      locationViewController = [[LocationViewController alloc] init];
      locationViewController.locationName = locationMessageContent.locationName;
      locationViewController.location = locationMessageContent.location;
      locationViewController.modalPresentationStyle = UIModalPresentationFullScreen;
      UINavigationController * navc = [[UINavigationController alloc] initWithRootViewController: locationViewController];
      navc.modalPresentationStyle = UIModalPresentationFullScreen;
      [self presentViewController: navc animado: SIM conclusão: NULL];
      }

Acho que você gosta

Origin blog.51cto.com/15056506/2678331
Recomendado
Clasificación