C.F.
A lot of times it is due to their sudden need for independence/control. Let him eat as much as he can on his own. My pediatrician always told me, "When they are hungry, they'll eat. Just keep offering.". I found that sometimes how you approach the food and how you describe or present the food can make the difference. If you beg him to eat something, he'll see it as a way he can control the situation and refuse it, even if he is hungry. If you give it to him and don't make a big deal about it, then he'll be less likely to jump to "control" mode. One thing that worked for us was all in the description-calling broccoli trees, calling anything small "baby" (baby carrots, baby corn for the corn in stir-fry), making something look like something else, would make my daughter interested in it. She's almost 5 and it still works today! I've offered something to her and she'll say no, and then I say something like, "Oh, I thought you'd like the BABY carrots.", and all of a sudden she changes her mind! She also liked dipping things into sauces.
I don't think he is teething, but even at 18 months he can get his molars in. My daughter had all her teeth, including molars by 15 1/2 months.
I had to eat things for several meals until we ate them when I grew up, too. I decided not to do that for my kids, but instead to just not ever make anything special for my kids, and make her eat a couple of bites. If she's hungry enough, she'll eat it. If not, I guess she'll have to wait until the next meal. Funny, though, I think that's only happened a few times. My secret weapon? We don't have dessert that often. So, when I pull out the dessert and she can't have any unless she eats enough dinner, all of a sudden she starts eating! Positive experience, and she learns to eat those foods that she otherwise wouldn't have touched. Hope this helps!