something that has started to work for my 3 year old is to sort one behaviour at a time... dd had got into the "habit" of eating in front of the TV, as the only way I could get her to eat when a toddler was to engage her attention elsewhere ans shovel it in. I know I made a rod for my own back, but when the time came to insist on eating in the kitchen, of course we had major tantrums, and that added to the numerous tantrums about just about everything else that we disagreed on (biscuits before meals, when bedtime is, bubbles in the bath or not...you name it). We were both getting miserable with all the fights and ended up not liking each other very much.
I decided to sort the eating in the kitchen thing first, so "gave in" on other things, so we didn't have too many screaming matches. Dinner was put on the kitchen table, and when the tantrum started she was put on the naughty step and ignored until she was hungry enough to come into the kitchen and eat. This took a few days, but now we eat in the kitchen for most meals and there are no more (big) fights on this issue.
Next was bedtime, and despite the screams the TV went off as soon as Cbeebies had finished. No more playing or messing around, up to bed. She will turn the TV off herself now, though I do have to "coax" her up the stairs by pretending to race her.
Going to tackle snacks between meals now and offer fruit if hungry and a particularly nice biscuit (she loves M+S teddy biscuits)if she finishes her meal.
Now we've run out of major "issues". We stll have our fights, but fewer of them and life is rather more peaceful.
HTH