The NDAA was an appropriations act. National Defense Approprations Act. It funds the military for the year.
There is no way that the Commander in Chief could in good faith forbid the treasury from distributing funds to the departments of defense, homeland security, and energy, to essentially bring the military to a grinding halt.
He issued a (non-binding) signing statement outlining his opposition to the indefinite detention provisions, but also declaring his need to pass the bill as the chief executive and the commander of the miltary, since the bill's primary purpose was to appropriate funds for the military. He claimed that his administration would not enforce the indefinite detention provisions (and to my knowledge, they haven't). Actually, originally, the provisions would have required the administration to use indefinite detention as a matter of standard operating procedure, but the administration was able to get congress to make it optional (but not remove the provision outright). Even so, the option was already there according to the courts thanks to powers granted under the Patriot Act, so the weakened form of the indefinite detention provisions that ended up being passed are essentially a no-op to the US Code.
I can't believe people fail to even realize that the provisions in question actually re-affirm powers the government already had, or that the bill is an appropriations act, or that the bill had no effect on the powers available to the executive branch with regards to indefinitive detention. Again, they simply affirmed powers that the 2001 AUMF already granted
It's almost like no one bothers to read the signing statement
Now, he didn't have to sign it OR veto it. In which case it automatically becomes law after 13 in-session days of congress IIRC. And he wouldn't have been able to attach a signing statement giving his thoughts on the matter in that case.