Can't click in NGui Button created by prefab

My Problem is:
I create ngui button by prefab .Then I add button to my horizontal scroll view

 foreach (var map in player.Mapdata)
        {
            var mapx=Instantiate(mapprefab, new Vector3(-100, 0, 0), Quaternion.Euler(0, 0, 0)) as GameObject;
            if (mapx != null)
            {
                var mapc = mapx.GetComponent<MapItem>();
                mapc.SetData(map);
                mapx.transform.parent = ScrollViewWrapMap;
                mapx.transform.localPosition = new Vector3(pointStart+(index++)*200.0f,0,0);
                mapx.transform.localScale = Vector3.one;
                mapx.transform.localRotation = Quaternion.identity;
               // mapx.GetComponent<UISprite>().depth += 1;
               
            }
        }

My map button is display in scrollview an my horizontal scorll view is work But I can’t click in my button.

When I click forward button in Unity Editor to change depth then i can click button.

But when I change depth by my code then my button still can’t click.

It isn’t safe to Instantiate NGUI prefabs. You need to use NGUITools.AddChild. This will allow you to instantiate the prefab and attach it to the UI hierarchy.