Tabbar에서 직접 ActionSheet를 호출하는 방법이 있습니까? 사용자가 적절한 단추가있는 작업 시트를 표시하는 탭 막대의 연락처 단추를 원할 때 프로그램 작업을하고 있습니다. 사전에UITabBar 버튼에서 호출 한 iPhone UIActionSheet
감사
Tabbar에서 직접 ActionSheet를 호출하는 방법이 있습니까? 사용자가 적절한 단추가있는 작업 시트를 표시하는 탭 막대의 연락처 단추를 원할 때 프로그램 작업을하고 있습니다. 사전에UITabBar 버튼에서 호출 한 iPhone UIActionSheet
감사
방금 뷰 컨트롤러가 탭 중 하나와 연관 한 후 actionSheet을 해당 뷰 일반을두고있는 viewDidLoad에서 할 수 없습니다?
보기 아래에 나사를 고정시킵니다. –
오, 탭 표시 줄을 클릭하여 현재보기 상단에 작업 시트를 열려면 다음과 같이하십시오. 어쩌면 내가 말한 것을 할 수 있지만 이전보기를 새보기로 하위보기로로드 할 수 있습니다. 메시지를 쓸 새로운 시각을 갖지 않겠습니까? – mk12
그게 정확히 내가해야 할 일이야. 사용자는 액션 시트 (크기와 투명도가 마음에 든다)를 고집하는 새로운보기를 원하지 않습니다. 그냥하는 방법을 찾으려고. 원래 방식은 테이블 뷰의 일부를 지우고 액션 시트는 표시되지 않습니다. –
메일 앱을 예로 들었을 때 곡선 화살표 버튼을 누르면 "전달 - 답장"작업 시트가 나타납니다.
아니요, 메일은 UITabbar를 사용합니다. 원하는대로 UITabbar를 사용하지 않습니다. 어쨌든해야하는 일을해서는 안되며, UITabBars는 앱 섹션 사이를 네비게이션하기위한 것이고, (사용자에게 연락하는 것과 같은) . – mk12
위의 모든 사람들은 이것이 좋은 생각이 아니라는 점에 동의합니다. (그리고 이것은 툴바를 사용하여 이루어져야합니다.)하지만 분명히 할 수 있습니다.
는아래 코드는 UITabBarControllerDelegate 방법 중 하나를 구현하고, 탭 표시 줄 항목의 선택을 방지하고, 대신 만들고 UIActionSheet를 표시합니다
- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
{
NSInteger choice = 0; // --> index of the view controller that should "act as button"
if (viewController == [tabBarController.viewControllers objectAtIndex:choice])
{
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Send e-mail", @"Twitter", @"Whatever", nil];
[sheet showFromTabBar:tabBarController.tabBar];
return NO;
}
return YES;
}
감사합니다.이 방법은 [sheet showFromTabBar : tabBarController.tabBar]로 수행 할 수 있습니다.이 방법은 UIActionSheet를 실제로 보여주는 것이 실제로 지원됨을 의미합니다. – masty
@masty 잘 말하자면 필자는 그에 맞춰 나의 답을 수정했다. ARC에도 적용되었습니다. –
가 난 후 무엇 스티브를 이해할 수 있다고 생각합니다. TabBarController의 첫 번째 요소를 통해 주요 활동에 도달했습니다. 두 번째 탭 표시 줄 요소에서 모달보기 이메일, 페이스 북 액세스 또는 트위터 액세스를 선택적으로 추가하고 싶습니다. 그 선택이 액션 시트를 통해 제공되어 첫 번째보기 콘트롤러 ("첫 번째 탭 표시 줄 선택"에서)의 "뒤에"있는 것을 놓치지 않고 선택을 처리하는 새로운보기 콘트롤러가 나타나면 좋을 것입니다. 이것은 예를 들어 뉴스 기사를 '공유'하고 싶을 때 'AP 모바일'이하는 것처럼 보입니다.
@Adrian : 당신의 솔루션에 아웃 - 오브 - 박스 작업 ..하지만 발견 이유 (읽어 ...)
이 (명백하게) 도움이되지 않습니다 가져올 수 없습니다 구체적으로 아웃렛에서 드래그 : 파일 소유자에게 델리게이트 다음과 같이 나타납니다 : *** 캐치되지 않은 예외 'NSInternalInconsistencyException'로 인해 앱 종료 중, 이유 : '탭 표시 줄 컨트롤러가 관리하는 탭 표시 줄의 델리게이트 변경이 허용되지 않습니다. . '
내가[rootController setDelegate:self];
건배를 추가 아래 applicationDidFinishLaunching에서 인터페이스 정의에 UITabBarControllerDelegate (UIApplicationDelegate이 이미 존재하고 있었고, 난 더 읽어 보지 않았 ...) 및 을 추가 할 때까지 내 대리자 메서드는 무시되고 있었다
.
탭 막대가 아닌 연락처 버튼이있는 툴바 여야합니다. – mk12