Chcę użyć metody addSubview, aby dodać nowy widok na moim ekranie. Jednak nowy widok musi również zawierać pasek nawigacji itp., co oznacza, że powinien obejmować cały ekran. Co powinienem zrobić?
Za każdym razem, gdy próbuję dodać Subview, zawsze pokazuje nowy widok pod paskiem nawigacyjnym.
Nie chcę używać pushViewController lub presentModelViewController, ponieważ nowy dodany widok będzie miał niską krycie i widzę tło, ale nie chcę wchodzić w interakcje z obiektami tła, takimi jak tabela przycisków paska itp. Przepraszam za angielski, mam nadzieję, że jasno powiedziałem, co rzecz w tym.
3 odpowiedzi
Po prostu ustaw właściwość frame
widoku, który dodałeś wcześniej, i ustaw ją z granicami ekranu.
[myView setFrame:[[UIScreen mainScreen] bounds];
[self.navigationController.view addSubview:myView];
Jeśli chcesz wyłączyć interakcję z paskiem nawigacyjnym:
[self.navigationController.navigationBar setUserInteractionEnabled:NO];
Możesz przyjrzeć się dodaniu kolejnego UIWindow nad twoim oknem głównym.
Kiedy próbowałem wykonać nawigacjęController.view addSubview, nie zakryłby mojego paska kart, więc wykonałem następujące czynności w oknie delegata mojej aplikacji:
[self.window addSubview:myView];
Jeśli potrzebujesz dostępu do swojego appDelegate z innej klasy, po prostu zaimportuj delegata aplikacji i wywołaj go z tego.
Podobne pytania
Nowe pytania
objective-c
Tego znacznika należy używać tylko w przypadku pytań dotyczących funkcji Objective-C lub zależnych od kodu w języku. Tagi [cocoa] i [cocoa-touch] powinny być używane, aby zapytać o ramy lub klasy Apple. Użyj powiązanych tagów [ios], [macos], [apple-watch] i [tvos] w przypadku problemów specyficznych dla tych platform.
addSubview:
w Twojej implementacji?