现在我有一个带有滑动菜单的应用程序。主窗口有一个视图,即“主体视图”。当用户从滑动菜单中选择一个项目时,它会更改将哪个视图添加到主体视图。这是索引的 .xml:
<Alloy>
<Window class="container">
<View id="menuview">
<View id="menuheaderview">
<Label id="menuheaderlabel">Menu</Label>
</View>
<View id="menubodyview">
<TableView id="menutableview" onClick="select">
<TableViewRow class="menurowview">
<Label class="menulabel">News</Label>
</TableViewRow>
<TableViewRow class="menurowview">
<Label class="menulabel">Calendar</Label>
</TableViewRow>
<TableViewRow class="menurowview">
<Label class="menulabel">Homework</Label>
</TableViewRow>
<TableViewRow class="menurowview">
<Label class="menulabel">Classes</Label>
</TableViewRow>
<TableViewRow class="menurowview">
<Label class="menulabel">Information</Label>
</TableViewRow>
<TableViewRow class="menurowview">
<Label class="menulabel">Help</Label>
</TableViewRow>
</TableView>
</View>
</View>
<View id="mainview">
<View id="mainheaderview">
<Button id="menubutton" onClick="showhidemenu"/>
<Label id="mainheaderlabel">News</Label>
<Button id="addbutton" />
</View>
<View id="mainbodyview" ></View>
</View>
</Window>
</Alloy>
和控制器:
var menuOpen = false;
function showhidemenu(e) {
if (menuOpen) {
moveTo = "0";
menuOpen = false;
} else {
moveTo = "35%";
menuOpen = true;
}
$.mainview.width = Ti.Platform.displayCaps.platformWidth;
$.mainview.animate({
left : moveTo,
curve : Ti.UI.ANIMATION_CURVE_EASE_OUT,
duration : 300
});
};
function select(e) {
for (var i = 0; i < e.section.rows.length; i++) {
e.section.rows[i].backgroundColor = '#212429';
}
var selectedRow = e.row;
selectedRow.backgroundColor = 'yellow';
if ($.mainbodyview.children.length) {
$.mainbodyview.removeAllChildren();
}
//*************add your view here*******************
if (selectedRow.children[0].text == 'News') {
$.mainheaderlabel.setText('News');
$.addbutton.visible = false;
$.mainbodyview.add(Alloy.createController('news').getView());
} else if (selectedRow.children[0].text == 'Homework') {
$.mainheaderlabel.setText('Homework');
$.addbutton.visible = true;
$.mainbodyview.add(Alloy.createController('homework').getView());
} else if (selectedRow.children[0].text == 'Information') {
$.mainheaderlabel.setText('Information');
$.addbutton.visible = false;
$.mainbodyview.add(new Alloy.createController('information').getView());
} else if (selectedRow.children[0].text == 'Calendar') {
$.mainheaderlabel.setText('Calendar');
$.addbutton.visible = false;
//$.mainbodyview.add(Alloy.createController('calendar').getView());
} else if (selectedRow.children[0].text == 'Classes') {
$.mainheaderlabel.setText('Classes');
$.addbutton.visible = false;
//$.mainbodyview.add(Alloy.createController('classes').getView());
} else if (selectedRow.children[0].text == 'Help') {
$.mainheaderlabel.setText('Help');
$.addbutton.visible = false;
$.mainbodyview.add(Alloy.createController('help').getView());
} else {
}
//**************************************************
showhidemenu();
};
$.index.open();
$.mainbodyview.add(Alloy.createController('news').getView());
在 IOS 上被破坏的代码部分是 $.mainbodyview.add(Alloy.createController('news').getView());
和类似的。它在 Android 上完美运行。为了兼容IOS,我有什么遗漏吗?