2017-04-21 10 views
0

親ビューからビューを削除しようとしています。私はいつApp.globalWindow.remove($。ラッパー);パラメータはこのビューの子孫である必要があります。アンドロイドAppcelerator

アプリはxmlファイルが

<Alloy> 
    <View id="wrapper"> 
     <View id="overlay" /> 
     <View id="content" layout="vertical"> 
      <ScrollView id="sv_list" height="80%" layout="vertical" top="10" /> 
      <Button id="btn_select" top="10">Select</Button> 
     </View> 
    </View> 
</Alloy> 

答えて

0

のように見えるcrashes-私は、現在の情報に基づいて見ることができる唯一の理由は、あなたが他のいくつかの.jsファイル&あなたが$を期待している方法を削除する呼び出しているということです。ラッパーを削除するビューのIDにすることができますが、$。ラッパーは、そのXMLが属する同じ.jsファイルでのみ使用できます。

まだ、この問題はnice-catchで解決できます。

以来、は実際にこのビューの階層から子ビューを削除しますので、あなたは逆の方法でそれを行うことができ、意味、親を取得Ti.UI.Window任意のTi.UI.Viewまたはのメソッドを削除ラッパービューとそのメソッドの呼び出しを削除します。

// it will always work if you intend to use remove method 
var wrapperParent = $.wrapper.getParent(); 
wrapperParent.remove($.wrapper); 
wrapperParent = null; 

// OR 

$.wrapper.getParent().remove($.wrapper); 

あなたがのgetParentを(表示されていない場合は驚いてはいけない)どこでもAPPCドキュメントで方法:)

提案::

    ただ、このような

  • 常に、Window、Viewsなどの重いオブジェクトにグローバル変数を使用しないようにしてください。
  • Ti.App.addEventListener()を使用せず、代わりにコールバック、またはバックボーンイベントディスパッチャーRead Hereを使用します。
  • 親ビューへの参照は常に&の子ビューであるため、それらを使用することができます。
  • 子ビューで呼び出すためのいくつかの頑丈なメソッドが必要な場合は、子ビューでメソッドをエクスポートして、そのメソッドを親ビューで呼び出すことができます。
関連する問題