Did you set button.action?
Here is a quick + dirty Example in Pythonista
import ui
import math
class cUIView(ui.View):
def __init__(self):
self.name = 'Title'
self.width = 300
self.height = 200
self.lbl01 = self.makeLabels('angle')
self.lbl02 = self.makeLabels('radius')
self.lbl03 = self.makeLabels('arc length')
self.txtView01 = self.makeTextview()
self.txtView02 = self.makeTextview()
self.txtView03 = self.makeTextview()
self.btn01 = self.makeButtons('btn01')
self.style()
def layout(self):
# layout of the ui.view, will be called when a view is resized
self.lbl01.frame = (10, 10, 100, 40)
self.lbl02.frame = (150, 10, 100, 40)
self.lbl03.frame = (10, 100, 100, 40)
self.txtView01.frame = (10, 50, 100, 40)
self.txtView02.frame = (150, 50, 100, 40)
self.txtView03.frame = (10, 140, 100, 40)
self.btn01.frame = (150, 100, 100, 40)
def style(self):
# the view style
self.background_color = 'lightgrey'
self.txtView01.text = str(1.5)
self.txtView02.text = str(10)
def makeButtons(self, vName):
vButton = ui.Button()
vButton.name = vName
vButton.title = vName
vButton.border_width = 1
vButton.action = self.btnAction
self.add_subview(vButton)
return vButton
def makeLabels(self, vName):
vLabel = ui.Label()
vLabel.name = vName
vLabel.text = vName
vLabel.border_width = 1
vLabel.alignment = ui.ALIGN_CENTER
self.add_subview(vLabel)
return vLabel
def makeTextview(self):
vTxtView = ui.TextView()
vTxtView.border_width = 1
self.add_subview(vTxtView)
return vTxtView
def btnAction(self, vSender):
if vSender.name == self.btn01.name:
pi = math.pi
angle = float(self.txtView01.text)
radius = float(self.txtView02.text)
arc = radius * angle * pi / 180
self.txtView03.text = str(arc)
if __name__ == '__main__':
vView = cUIView()
vView.present('sheet')