我已经在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>
);
}
};