You're lucky. I often have to deal with self-called designers who don't understand basic design neither.
by mean they dont understand UX rules and other things like how user interact with the software
In other words, they are designers, not software designers or web designers. So they are not suited for their job. This means that you have three ways to deal with them:
Teach them. If you're glad to have in front of you a person who understands that he doesn't know everything, and that he might have things to learn in his life, this may succeed. If you don't have skills required to be a good teacher, suggest them to take some lectures or to read some books about software or web design.
Fire them. If you are able to explain to your boss that those designers are not competent enough to do their job correctly, chances are your boss will hire somebody more skillful.
Cope with it. If you can neither teach them, nor fire them, than you have no power to be able to deal with more professional designers. In this case, all you can do is to try to stay professional and objective.
As a UX expert, you must certainly have solid references to UX principles. When such principle is violated by the designer, explain it both to the project manager and the concerned designer, and expect the first one to agree with you and to allow you to modify the design yourself. If everybody disagrees with you, well, you may ask yourself if you are really as knowledgeable in UX as you think, and if you are, do you really want to stay in such company?
When a team is formed, it is important to assign roles to those who are the most competent to play them. If you assign the role of DBA to a young person who don't have any professional experience and is not very knowledgeable about databases, while you have in your team a C# developer who spent years working as DBA expert, there will be tensions between both. When such conflict arise, as a team leader, you have two strategies:
Rebuild a team, for example by assigning DBA role to the C# developer who is a DBA expert,
Tell your team members to calm down and to follow strictly the roles that were assigned to them. A C# developer, no matter how competent he is in databases, doesn't have to deal with the database, because you, as a leader, decided that he's not the DBA in this team, and you had your reasons to decide that.
The second solution of my answer (fire them) is related to the first strategy (rebuild a team). The third one (cope with it) is related to the second strategy (do not rebuid a team). The first one doesn't concern the team leader, as it happens only between you and your teammate.
What is better to do depends on you and your precise context.
Don't rush into a conflict if you're unsure of your own skills. If you disagree with the designer on a point, remember that there may be some caveats, making the opinion of the designer as valuable as yours, if not more (after all, he was hired as a designer, not you). For example, think about style guidelines: do you have to use tabs or spaces? think about programming languages: do you have to use Java or C#? Both opinions are equally valuable, but you'll always be convinced that yours is the only one which makes sense.
If you're sure that the designer is incompetent, ask yourself if you want to create a conflict in your team, with all the consequences this may have for you. If yes, explain the situation to the team leader, asking to rebuild a team, or to your boss, asking to fire the designer. If no, keep it between you and the designer, trying to influence the designer to learn more.