Who named a ship after him?
No one
The ship was named for Two Admirals who were JS McCain’s father and grandfather. Last year they added JSM III to the honorees.
You can say that two of the three were honorable.
President Trump was not off base in wanting to hide the namesake of a man who tried to be his nemesis, the JSM III, who turned out to be a small man with little flying skills and fewer people skills.