2017-10-04 115 views
0

我需要你的幫助。如何刪除節點並添加新節點Swift

我試圖刪除一個節點並在解散了前一個節點後加載一個新節點。

其實我可以它使用一個單獨的FUNC內刪除:

sceneView.scene.rootNode.enumerateChildNodes { (node, stop) in 
      node.removeFromParentNode() 
     } 

但在那之後,我回顧功能「的addChild」新節點沒有出現在現場。

func addChild(object: String){ 
     if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { 

      let path = dir.appendingPathComponent(object) 

      //reading 
      do { 
       scene = try SCNScene(url: path) 
       node = scene.rootNode 

      } 
      catch {/* error handling here */} 
     } 
     counter += 1 

    } 

「的addChild」正在作爲參數的陣列的元件和計數器每次在func被稱爲時間之後移動指針到所述陣列的另一個元件。

EX:我有一個包含兩個元素的數組,我想第一次顯示的對象始終是第一個,然後當我觸摸該對象時,它將被刪除,並且必須調用func addChild通過這種方式,前一個元素從數組中刪除,下一個元素將被加載,這要歸功於將指針移動到下一個元素的計數器。

我不知道我的例子是否足夠說明。 提前謝謝!

+0

OFC它越來越內,因爲第一元件顯示在場景中... –

回答

0

修復了剛剛回想起函數內部的「sceneView.scene = scene」,每當我調用函數removeChild時從數組中刪除元素。

FUNC的addChild(對象:字符串){ 如果讓DIR = FileManager.default.urls(爲:.documentDirectory,在:.userDomainMask)。首先{

 let path = dir.appendingPathComponent(object) 

     //reading 
     do { 
      scene = try SCNScene(url: path) 
      node = scene.rootNode 
      sceneView.scene = scene 
     } 
     catch {/* error handling here */} 
    } 


}