My pediatrician said, pound for pound, 18 month olds are the orneriest creatures on the planet! Isn't this the age where they tell you to put one or two bites of everything on the plate because it probably will be airborne rather than eaten?
Put yourself in her shoes, though. She knows she OUGHT to be able to talk to you about what she wants, but her language skills aren't good enough and that's really frustrating. Sometimes when she asks for something you do it, sometimes you don't. She doesn't understand the difference. And she has no concept of things like "if" and "later."
I would put a few crackers on her plate every time, before you even put her in her chair. There are some healthy whole grain ones out there (I like the Kashi ones, and they taste "plain.") Plus, even if it's messy, I would give her a little food and let her feed herself. That could be a huge part of it--if you let her eat crackers herself, but feed her everything else, maybe she wants to do it herself.
People say just serve everything at once, including dessert, and let the child pick. It will balance out over a few days. I know it balances out, but NEVER believed in the dessert part, and the rule for my daughter always was that if you're not hungry for dinner, you must not have room for dessert. But recently my son just flat out wore me down--he wouldn't touch his dinner and wanted dessert. I gave it to him, he ate it and then, once it was off his mind, he ate his whole dinner!
BTW, spinach is a great food with a lot of good stuff in it. And some people just don't like meat (my daughter and hubby). My daughter will eat a "no thank you helping" of meat, especially with ketchup, applesauce or dressing to dip it in, but she's not a fan. We do lots of eggs, yogurt, cheese and almond butter. Plus, she loves lentil soup!
I think it goes much better if it's not a battle. It's a tough line to walk, but offer healthy choices and let her pick!