Создать собственный компонент пользовательского интерфейса с UIViewController вместо UIView - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь создать Native UI Component, чтобы я мог использовать его с другими реактивно-нативными компонентами в той же сцене.Я прочитал документ здесь https://facebook.github.io/react-native/docs/native-components-ios,, но используемый мной фреймворк (GStreamer) предоставляет только UIViewController.Вот что у меня есть:

RNStreamerManager.h

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <React/RCTViewManager.h>

NS_ASSUME_NONNULL_BEGIN

@interface RNStreamManager : RCTViewManager
@end

NS_ASSUME_NONNULL_END

RNStreamerManager.m

#import <Foundation/Foundation.h>
#import "RNStreamerManager.h"
#import "GSViewController.h"


@implementation RNStreamManager

RCT_EXPORT_MODULE(RNStream)

RCT_EXPORT_VIEW_PROPERTY(stream_port, NSString)

- (UIView *)view
{
  GSViewController *controller = [GSViewController loadInstanceFromNib];
  return controller.view;
}

@end

Я могу создать функцию view смой взгляд viewController как возвращение.Это работает, и я могу использовать этот компонент в моем приложении на собственном языке.

Проблема в том, что мне нужно js, чтобы передать свойство в цель c , в данном случае номер порта потока, чтобы инфраструктура GStreamer могла представить поток на порту.В моем GSViewController.h я определил:

@property(nonatomic, assign) NSString *stream_port;

и в своем коде js я попытался передать свойство как

<GStream port={this.props.port} style={{flex: 1}} />

, а в RNStreamerManager.m я поставил

RCT_EXPORT_VIEW_PROPERTY(stream_port, NSString)

, но stream_port не установлено, и я получил ноль.Я попробовал RCT_CUSTOM_VIEW_PROPERTY, но тоже не получилось.

Буду очень признателен, если кто-нибудь сможет дать намек или идею!Я застрял в этой проблеме в течение 2 дней, пожалуйста, помогите!Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...