如何监听通过React Native创建的Objective-C视图的事件?

时间:2018-11-28 05:04:23

标签: react-native react-native-ios

我已经在React Native中实现了ScrollView(FlatList),并通过ObjC将其添加为UIViewController对象的self.view属性。有效!在FlatList的“单元”内,我添加了一个Switch,众所周知,它在Objective-C中创建了一个UISwitch。仍在工作!

我的问题是这样的:我的iOS UIViewController类如何获得有关Switch状态更改的通知?通常,我们会使用委托模式,但是View Controller没有对我所知道的UISwitch的引用。 Javascript中的onValueChange函数是否可以调用我的UIViewController?这里最好的设计模式是什么?

这是我在JS中的“单元格”:

class SettingsToggleCell extends Component {

state = {
    value: false,
};

onSwitchValueChange=(value, index)=>{
    console.log(`value changing to ${value}`)
    this.setState({"value": value},
        () => {
            // here is our callback that will be fired after state change.
            console.log(`Switch Value Changed! ${value}`);
        }
    )
}

render() {
    return (
        <View style={{flex: 1, backgroundColor: 'white',
            flexDirection: 'row'}}>
            <View style={styles.switchCell} >
                <View style={{flex:1, flexDirection:'row', alignItems:'flex-end'}}>

                    <Text style={{fontSize:22, marginLeft:10}}>{this.props.item.title}</Text>
                    <Switch 
                        value={this.state.value} 
                        onValueChange={this.onSwitchValueChange.bind(this)}
                        style={styles.switch}
                    />
                </View>
            </View>
        </View>
    );

}
};

0 个答案:

没有答案