The invention relates to a method for preparing tolterodine and tartrate thereof, which comprises the steps: A) diisopropylamine and compound 2 (3, 4- dihydro-6- methyl-4-phenyl-2H-chromene-2- ketone can be activated and react, and then are decompressed and concentrated after being quenched, acidulated and extracted by organic solvent; after that, the mixture is added with crystallization solvent to be crystallized, and compound 3 is prepared; B) the compound 3 is deacidized by reducing agent, and then is quenched, separated and purified to obtain compound 1 tolterodine free alkali; C) the compound 1 tolterodine free alkali is dissolved by L-(+) tartaric acid, and compound 4 tolterodine tartrate is prepared. The method has short steps, low cost, high yield coefficient, easy operation and simple post treatment, and is stable in the quality of the prepared products and convenient for commercial process.