1 defineClass('JPViewController', { 2 handleBtn: function(sender) { 3 var tableViewCtrl = JPTableViewController.alloc().init() 4 self.navigationController().pushViewController_animated(tableViewCtrl, YES) 5 } 6 }) 7 8 defineClass('JPTableViewController : UITableViewController <UIAlertViewDelegate>', ['data'], { 9 dataSource: function() { 10 var data = self.data(); 11 if (data) return data; 12 var data = []; 13 for (var i = 0; i < 20; i ++) { 14 data.push("cell from js " + i); 15 } 16 self.setData(data) 17 return data; 18 }, 19 numberOfSectionsInTableView: function(tableView) { 20 return 1; 21 }, 22 tableView_numberOfRowsInSection: function(tableView, section) { 23 return self.dataSource().length; 24 }, 25 tableView_cellForRowAtIndexPath: function(tableView, indexPath) { 26 var cell = tableView.dequeueReusableCellWithIdentifier("cell") 27 if (!cell) { 28 cell = require('UITableViewCell').alloc().initWithStyle_reuseIdentifier(0, "cell") 29 } 30 cell.textLabel().setText(self.dataSource()[indexPath.row()]) 31 return cell 32 }, 33 tableView_heightForRowAtIndexPath: function(tableView, indexPath) { 34 return 60 35 }, 36 tableView_didSelectRowAtIndexPath: function(tableView, indexPath) { 37 var alertView = require('UIAlertView').alloc().initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles("Alert",self.dataSource()[indexPath.row()], self, "OK", null); 38 alertView.show() 39 }, 40 alertView_willDismissWithButtonIndex: function(alertView, idx) { 41 console.log('click btn ' + alertView.buttonTitleAtIndex(idx).toJS()) 42 } 43 });(function(){try{ defineClass('JPViewController', { handleBtn: function(sender) { var tableViewCtrl = JPTableViewController.__c("alloc")().__c("init")() self.__c("navigationController")().__c("pushViewController_animated")(tableViewCtrl, YES) } }) defineClass('JPTableViewController : UITableViewController <UIAlertViewDelegate>', ['data'], { dataSource: function() { var data = self.__c("data")(); if (data) return data; var data = []; for (var i = 0; i < 20; i ++) { data.__c("push")("cell from js " + i); } self.__c("setData")(data) return data; }, numberOfSectionsInTableView: function(tableView) { return 1; }, tableView_numberOfRowsInSection: function(tableView, section) { return self.__c("dataSource")().length; }, tableView_cellForRowAtIndexPath: function(tableView, indexPath) { var cell = tableView.__c("dequeueReusableCellWithIdentifier")("cell") if (!cell) { cell = require('UITableViewCell').__c("alloc")().__c("initWithStyle"