The answer on stack overflow has an all right explanation http://stackoverflow.com/questions/3058/what-is-inversion-of-control
As best I can explain it, it's a way of designing a library so that components of the lib aren't locked in (coupled) to using specific other libraries. This allows the users of your library finer control over parts of your lib.