Разные справочники дают разные рекомендации (подробнее см. в "Письмовнике"). На практике названия городов из двух слов, если они следуют после родового слова город, чаще не склоняют.
Правило следующее: пишутся слитно прилагательные, образованные из основ слов, отношение между которыми носит подчинительный характер: верхнесалдинский (от Верхняя Салда), нижнетагильский (от Нижний Тагил).
Согласно правилам, оба названия склоняются: в г. Нижнем Тагиле, в г. Каменске-Уральском_ (первая часть тоже склоняется). Подробнее см. в «Письмовнике».