The entire point of inherited widget is to allow you to access it without having to pass it down through constructors. If you're having to pass it, you're probably not using it as designed.
There are a few things to keep in mind with inherited widgets. The first is that they are immutable; you can't change their data. The second is that there's no direct way to access one by itself.
What you should be doing instead is making a StatefulWidget subclass in your widget tree such that it's higher in the tree than anywhere you would need it. That means that if you have it in one page, then push a new page to the navigator, it isn't going to work, as they are separate branches in the widget tree under the Navigator.
Take a look at this answer for a more in-depth example of how to use an inherited widget. Also, check out the scoped_model package - it eliminates a lot of the boilerplate needed for inherited widgets.
If all you're doing is showing a dialog then returning to the same page though, you shouldn't have to use an InheritedWidget at all - you could just use a simple widget then pass it back afterwards. However, without adding some code to your question it's very hard to tell where you could be going wrong.