title: Problems with Kivy ScreenManager (ScreenManager.current trouble)
body: <p>I have problem with ScreenManager that it wont change screen after password check.
  When the password has been checked and its all right — there is need to be switched to the main_menu screen. Now it works after next start of the programm only, because when you are typing the right password — you just see that the password is correct and thats all!</p>
  
  <p>There is my main.py:</p>
  
  <pre class="lang-py prettyprint-override"><code>from kivy.app import App
  from kivymd.theming import ThemeManager
  from kivymd.label import MDLabel
  from kivy.uix.screenmanager import ScreenManager, Screen
  from kivy.uix.boxlayout import BoxLayout
  from kivy.uix.anchorlayout import AnchorLayout
  from kivy.metrics import dp, sp, pt
  from kivy.properties import ObjectProperty, NumericProperty, StringProperty, BooleanProperty, ListProperty
  from kivymd.toast.kivytoast import toast
  from kivymd.textfields import MDTextField
  from kivy.storage.jsonstore import JsonStore
  from kivy.uix.textinput import TextInput
  from kivy.uix.screenmanager import SlideTransition
  from kivy.uix.screenmanager import NoTransition
  
  class keyinput(MDTextField):
      pass
  
  class Manager(ScreenManager):
      def __init__(self, **kwargs):
          super(Manager, self).__init__(**kwargs)
  
          psw = JsonStore('password.json')
  
          if psw.exists('key'):
              registeredkey = psw.get('key')['keyvalue']
              if registeredkey != '12345678':
                  self.transition = NoTransition()
                  self.current = 'login_screen'
              else:
                  self.transition = NoTransition()
                  self.current = 'main_menu'
          else:
              toast('THERE IS NO KEY IN YOUR SYSTEM!')
              self.transition = NoTransition()
              self.current = 'login_screen'
  
  class LoginScreen(Screen):
  
      def keycheck(self):
  
          psw = JsonStore('password.json')
  
          if self.kinput.text == '12345678':
              toast('KEY IS CORRECT')
              mngr = Manager()
              mngr.transition = NoTransition()
              mngr.current = 'main_menu'
              psw.put('key', keyvalue=str(self.kinput.text))
          elif len(self.kinput.text) &gt; 8:
              toast('Too much text!')
          else:
              toast('KEY IS INCORRECT!')
  
  class MainMenu(Screen):
  
      def __init__(self, **kwargs):
          super().__init__(**kwargs)
  
          kinput = ObjectProperty(None)
  
          self.menu_items = [
                  {
                      "viewclass": "MDMenuItem",
                      "text": "text%d" % i,
                      "callback": self.callback,
                  }
                  for i in range(1, 3)
              ]
  
          self.menu_button = None
  
      def change_variable(self, value):
          print("\nvalue=", value)
          self.VARIABLE = value
          print("\tself.VARIABLE=", self.VARIABLE)
  
      def callback(self, *args):
          toast(args[0])
  
  class MainApp(App):
      title = "KivyMD MDDropdownMenu Demo"
      theme_cls = ThemeManager()
  
      def build(self):
          return Manager()
  
  if __name__ == "__main__":
      MainApp().run()
  </code></pre>
  
  <p>There is my main.kv:</p>
  
  <pre class="lang-py prettyprint-override"><code>#:import MDDropdownMenu kivymd.menus.MDDropdownMenu
  #:import MDRaisedButton kivymd.button.MDRaisedButton
  #:import MDLabel kivymd.label.MDLabel
  
  &lt;OptionalLabel@MDLabel&gt;:
      halign: 'center'
      font_size: dp(12)
  
  &lt;MDRB@MDRaisedButton&gt;:
      size_hint: None, None
      size: 3 * dp(48), dp(48)
      pos_hint: {'center_x': 0.5, 'center_y': 0.5}
      opposite_colors: True
  
  &lt;keyinput&gt;:
      size_hint_x: 0.5
      halign: 'center'
      pos_hint: {'center_x': .5, 'center_y': .5}
      max_text_length: 8
  
  &lt;Manager&gt;:
      LoginScreen:
          id: login_screen
          name: 'login_screen'
      MainMenu:
          id: main_menu
          name: 'main_menu'
  
  &lt;LoginScreen&gt;:
      kinput: kinput
      AnchorLayout:
          anchor_y: 'center'
          BoxLayout:
              orientation: 'vertical'
              size_hint: 0.5, 0.5
              pos_hint: {'center_x': 0.5, 'center_y': 0.5}
              spacing: dp(10)
              MDRB:
                  text: 'Login'
                  on_release:
                      root.keycheck()
              keyinput:
                  id: kinput
                  hint_text: "Login password"
  
  &lt;MainMenu&gt;:
      AnchorLayout:
          anchor_y: 'center'
          BoxLayout:
              orientation: 'vertical'
              size_hint: 0.5, 0.5
              pos_hint: {'center_x': 0.5, 'center_y': 0.5}
              spacing: dp(10)
              OptionalLabel:
                  text: 'You have logged in'
  </code></pre>
  
  <p>Thanks for attention and help!</p>