UIViewControllerHierarchyInconsistency exception

126 views
Skip to first unread message

Mikael Konradsson

unread,
Mar 7, 2012, 2:25:24 AM3/7/12
to iphone...@googlegroups.com
Hej!
Jag har en UIWebbiew som jag laddar upp en htmlsträng med för att spela ett youtube-klipp. UIWebview presenteras i en modal UIViewController. Detta fungerar utmärkt på iPhone. När jag gör detta på en iPad som kör iOS 5.0 eller senare får följande exception:

*** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UIViewController: 0x85d5e00> should have parent view controller:<NewsTableViewController: 0x855f7b0> but requested parent is:<MPInlineVideoViewController: 0x85d3a20>'

Jag grävde lite mer i problemet och det sker INTE på iPad med iOS 5.0 om jag sätter ModalPresentationStyle till Fullskärmsläget, eller en iPad som kör iOS 4.x.

Det finns lite frågor på stackoverflow och även på Apples forum men det verkar inte finnas några "bra" svar. Någon av er borde stött på samma problem och löst det, eller?

Jag funderar på att ersätta UIWebView med MPMoviePlyaerController, men jag tror inte den klarar att spela upp Youtubeklipp, någon som vet?

Tacksam för svar!
Mvh
//Mikael


César Pinto Castillo

unread,
Mar 7, 2012, 2:42:09 AM3/7/12
to iphone...@googlegroups.com
Spännande! Inte stött på detta problem förut. Kan du lägga upp kod på exempelvis GitHub?

Allt gott,

/César Pinto Castillo

Sent from my iPhone

Mikael Konradsson

unread,
Mar 7, 2012, 3:00:18 AM3/7/12
to iphone...@googlegroups.com
Hej jag glömde en viktig detalj. Det är först när jag klickar på att spela Youtubeklippet i fullskärm som det faktiskt krashar, innan dess fungerar det som det skall även på iPad med iOS 5.0.
//Mikael

Mikael Konradsson

unread,
Mar 7, 2012, 5:16:08 AM3/7/12
to iphone...@googlegroups.com
UiwebViewCrash.zip

Claes Jacobsson

unread,
Mar 7, 2012, 9:27:38 AM3/7/12
to iphone...@googlegroups.com
Får intrycket att det där är en bugg i UIWebView, men inte säker. Ett sätt att komma runt det skulle förstås vara att visa din YoutubeController med addSubview istället och animera den för att härma beteendet hos presentModalViewController.

Tror inte det funkar med Youtube och MPMoviePlayerController.

/Claes


Den 7 mars 2012 11:16 skrev Mikael Konradsson <mikael.k...@gmail.com>:


Hej jag "hackade" snabbt upp ett exempel. Tyvärr måste du starta om mellan varven eftersom jag inte har någon stängknapp.
Kör ni "Fullskärm" så fungerar det att maximera filmen, däremot om nu kör PageSheet krashar appen.

iOS 4.2.1 skall fungera.
iOS 5.x Krashar (PageSheet).

Koden är kass annars, men det var mest så ni skulle förstå problemen, alla förslag och lösningar är välkomna. Kommer ni till kalmar bjuder jag på ÖL för den som löser problemet ;)

//Mikael



7 mar 2012 kl. 08:42 skrev César Pinto Castillo:

Mikael Konradsson

unread,
Mar 7, 2012, 9:33:15 AM3/7/12
to iphone...@googlegroups.com
Har du lust att utveckla lite vad du menar med:

Ett sätt att komma runt det skulle förstås vara att visa din YoutubeController med addSubview istället och animera den för att härma beteendet hos presentModalViewController.

Om du orkar får du gärna redigera koden http://db.tt/xqMbeYP1
//Mikael

Claes Jacobsson

unread,
Mar 7, 2012, 3:46:03 PM3/7/12
to iphone...@googlegroups.com
Har gjort en enkel demo som visar hur jag menar. Är förstås bökigare än att använda presentModalViewController, men om det nu är en bugg där så...


Lycka till!

Claes

Mikael Konradsson

unread,
Mar 7, 2012, 4:07:15 PM3/7/12
to iphone...@googlegroups.com
Tack så hemskt mycket för hjälpen!
//Mikael

Claes Jacobsson

unread,
Mar 7, 2012, 4:19:34 PM3/7/12
to iphone...@googlegroups.com
Inga problem. Man får förstås jobba vidare lite för att få det snyggare med rundade hörn, skuggor m.m. 

Hälsningar
Claes
Reply all
Reply to author
Forward
0 new messages