How about this:
When you press the button on MenuScreen, it sets an attribute for itself containing the text that you want to put in the SettingsScreen label. MenuScreen is then assigned the id value in the kv file, which is used to refer to this attribute. Example:
main.py
class MenuScreen(Screen): text = StringProperty('') def change_text(self): self.text = "The text you want to set" self.manager.current = "SettingsScreen" class SettingsScreen(Screen): label_text = StringProperty('')
kv file
ScreenManager: id: screen_manager MenuScreen: id: menu_screen name: 'MenuScreen' manager: screen_manager SettingsScreen: name: 'SettingsScreen' manager: screen_manager label_text: menu_screen.text <MenuScreen>: BoxLayout: Button: text: 'Goto nn' on_press: root.change_text() <SettingsScreen>: BoxLayout: Label: text: root.label_text
As you can see, I set the screen names and identifiers under the ScreenManager itself in the kv file, as this is what I usually did to make this work.
source share