title: How to access Kivy screens manager.<property> using Python
body: <p>Background: I have been learning Python - and through it - Kivy, by making an app. I have been using the .kv file and Builder.load_string methods to create my graphics, but have decided to try using solely python, and moving all of my layouts over into python.</p>
  
  <p>The Problem: When I began using screens, I was unable to bind the correct code to the buttons to make the screens transition. When I am writing the line, 'self.manager.etc...' auto-complete shows me a list of valid properties to use. </p>
  
  <p>So after 'self.' it shows that I can use 'manager', and after 'manager.' it does not think that the screen's manager has a 'current' or 'transition' property. I must have messed up in how I connected the screen to the manager, but I cannot fathom how.</p>
  
  <pre><code>class HomePage(Screen):
      def __init__(self, **kwargs):
          super(HomePage, self).__init__(**kwargs)
  
          layout = FloatLayout()
  
          notification = Label(text='upcoming: ....', font_size='16sp', size_hint=(0,0), pos_hint={'center_x':.5, 'top':0.9})
          layout.add_widget(notification)
  
          button_row=BoxLayout(size_hint_y=.1, spacing=20)
  
          profile_button=Label(text='Profile')
          button_row.add_widget(profile_button)
  
          layout.add_widget(button_row)
          self.add_widget(layout)
  
          def transit():
              self.manager.current = profile_button # &lt;- this should work, right?
  
          profile_button.bind(on_press=transit)
  
  class ScreenApp(App):
      def build(self):
          sm = ScreenManager()
          sm.add_widget(HomePage(name='home'))
          return sm
  
  if __name__ == "__main__":
      ScreenApp().run()
  </code></pre>