I've made a pause menu in NGUI. The camera and all the menu objects are in a hierarchy under an object called Menu. When I want to show/hide the menu, I call SetActiveRecursively on the Menu object. This works just fine on its own.
I then call a function called RerenderMenu() to display either the Disconnect button, in case we're connected, or the Start Server & Connect to Server buttons in case the player has just disconnected. This function works by calling SetActiveRecursively on each of the buttons.
Normally, each one of these operations work correctly on their own, but there's a problem that occurs when I try to call them both in the same frame. If I call Menu.SetActiveRecursively(true) followed by RerenderMenu(), the correct objects are activated and work correctly, but I can still see all the inactive buttons. The deactivated buttons don't respond to mouse events, but they're still visible. I can confirm from the hierarchy view, and some debug messages, that the button objects are indeed deactivated.
I can't figure out what it is that's happening that causes the buttons to still appear even when they're deactivated.
I'm using Unity 3.5.1 with NGUI 1.68b. Let me know if you need more information.