คำถามติดแท็ก ios

iOS เป็นระบบปฏิบัติการมือถือที่รันบน Apple iPhone, iPod touch และ iPad ใช้แท็กนี้ [ios] สำหรับคำถามที่เกี่ยวข้องกับการเขียนโปรแกรมบนแพลตฟอร์ม iOS ใช้แท็กที่เกี่ยวข้อง [object-c] และ [swift] สำหรับปัญหาเฉพาะสำหรับภาษาการเขียนโปรแกรมเหล่านั้น

19
รับ UIViewController ที่แสดงปัจจุบันบนหน้าจอใน AppDelegate.m
กระแสUIViewControllerบนหน้าจอจำเป็นต้องตอบสนองต่อการแจ้งเตือนแบบพุชจาก APN โดยการตั้งค่ามุมมองป้ายบางส่วน แต่ฉันจะหาUIViewControllerวิธีการapplication:didReceiveRemoteNotification: จากAppDelegate.m? ฉันพยายามใช้self.window.rootViewControllerเพื่อรับการแสดงผลปัจจุบันUIViewControllerอาจเป็นUINavigationViewControllerตัวควบคุมมุมมองหรือประเภทอื่น ๆ และฉันพบว่าvisibleViewControllerคุณสมบัติของUINavigationViewControllerสามารถใช้เพื่อรับUIViewControllerบนหน้าจอ แต่จะทำอย่างไรถ้าไม่ใช่UINavigationViewController? ขอความช่วยเหลือใด ๆ ! รหัสที่เกี่ยวข้องมีดังต่อไปนี้ AppDelegate.m ... - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //I would like to find out which view controller is on the screen here. UIViewController *vc = [(UINavigationViewController *)self.window.rootViewController visibleViewController]; [vc performSelector:@selector(handleThePushNotification:) withObject:userInfo]; } ... ViewControllerA.m - (void)handleThePushNotification:(NSDictionary *)userInfo{ …

16
จะตรวจสอบได้อย่างไรว่าตัวควบคุมมุมมองถูกนำเสนอแบบโมฆะหรือถูกผลักบนสแต็กการนำทาง?
ฉันจะแยกความแตกต่างระหว่าง: นำเสนออย่างสุภาพ ผลักบนสแตกการนำทาง ทั้งสองอย่างpresentingViewControllerและisMovingToParentViewControllerอยู่YESในทั้งสองกรณีจึงไม่เป็นประโยชน์มากนัก สิ่งที่ทำให้เกิดความซับซ้อนคือบางครั้งตัวควบคุมมุมมองหลักของฉันเป็นกิริยาช่วยซึ่งตัวควบคุมมุมมองที่ต้องตรวจสอบจะถูกผลัก ปรากฎว่าปัญหาของฉันคือฉันฝังลงHtmlViewControllerในสิ่งUINavigationControllerที่จะนำเสนอแล้ว นั่นเป็นเหตุผลที่ความพยายามของฉันเองและคำตอบที่ดีด้านล่างไม่ได้ผล HtmlViewController* termsViewController = [[HtmlViewController alloc] initWithDictionary:dictionary]; UINavigationController* modalViewController; modalViewController = [[UINavigationController alloc] initWithRootViewController:termsViewController]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentViewController:modalViewController animated:YES completion:nil]; ฉันเดาว่าฉันควรบอกตัวควบคุมมุมมองของฉันดีกว่าเมื่อมันเป็นกิริยาแทนที่จะพยายามกำหนด


11
RootViewController Switch Transition Animation
มีวิธีใดบ้างที่จะมีเอฟเฟกต์การเปลี่ยน / ภาพเคลื่อนไหวในขณะที่แทนที่วิวคอนโทรลเลอร์ที่มีอยู่เป็น rootviewcontroller ด้วยอันใหม่ใน appDelegate

6
เรียกดูไฟล์ที่สร้างบนอุปกรณ์โดยแอปพลิเคชัน iOS ที่ฉันกำลังพัฒนาบนเวิร์กสเตชัน?
ฉันกำลังพัฒนาแอป IOS ที่สร้างไฟล์บนอุปกรณ์เช่นด้วยNSKeyedArchiverไฟล์. ในระหว่างการพัฒนา Android คุณสามารถเรียกดูระบบไฟล์ของอุปกรณ์เมื่อเชื่อมต่อกับเวิร์กสเตชันของคุณผ่าน USB เพื่อช่วยในการแก้ไขปัญหาแอปของคุณ อย่างไรก็ตามสำหรับ IOS ฉันไม่เห็นสิ่งที่คล้ายกันภายใต้ Organizer ใน Xcode เพื่อช่วยฉันเรียกดูไฟล์ที่แอพของฉันสร้างจากเวิร์กสเตชัน Googling "iOO เรียกดูไฟล์อุปกรณ์", "ดูไฟล์ iPhone" และอื่น ๆ เผยให้เห็นโซลูชันสำหรับอุปกรณ์ที่เจลเบรค แต่ไม่ใช่สำหรับอุปกรณ์ทั่วไปที่จัดเตรียมไว้สำหรับการพัฒนา ฉันจะเรียกดูไฟล์บนอุปกรณ์ที่สร้างโดยแอพ iOS ที่ฉันกำลังพัฒนาได้อย่างไร
126 xcode  ios 

5
เหตุการณ์คลิกปุ่มโดยใช้โปรแกรมหรือไม่
มีวิธีในการเริ่มการทำงานของเหตุการณ์คลิกปุ่มโดยทางโปรแกรมหรือไม่? ฉันมีปุ่มวางไว้ที่นั่นใน UIView และในบางสถานการณ์ฉันต้องการคลิกปุ่มผ่านรหัสไม่ใช่ด้วยตนเองในฐานะผู้ใช้ เป็นไปได้ไหมในการพัฒนา iOS โปรดให้คำแนะนำของคุณและแนะนำวิธีการทำเช่นนั้น ขอบคุณ
126 ios  objective-c  iphone 

27
ตรวจจับ backspace ใน UITextField ว่างเปล่า
มีวิธีใดบ้างในการตรวจจับเมื่อกดปุ่มBackspace/ Deleteบนแป้นพิมพ์ iPhone บนUITextFieldที่ว่างเปล่า ฉันต้องการทราบว่าเมื่อใดที่Backspaceถูกกดเมื่อUITextFieldว่างเท่านั้น จากคำแนะนำจาก @Alex Reynolds ในความคิดเห็นฉันได้เพิ่มรหัสต่อไปนี้ในขณะที่สร้างช่องข้อความของฉัน: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleTextFieldChanged:) name:UITextFieldTextDidChangeNotification object:searchTextField]; ได้รับการแจ้งเตือนนี้ ( handleTextFieldChangedเรียกใช้ฟังก์ชัน) แต่ยังไม่ได้เมื่อฉันกดBackspaceแป้นในช่องว่าง ความคิดใด ๆ ? คำถามนี้ดูเหมือนจะมีความสับสน ฉันต้องการรับการแจ้งเตือนเมื่อBackspaceกดปุ่ม แค่นั้นแหละ. แต่โซลูชันจะต้องใช้งานได้เมื่อค่าUITextFieldว่างอยู่แล้ว

17
ไม่มีสิทธิในการแจ้งเตือนแบบพุช
ฉันมีแอปสำหรับส่งเมื่อถูกปฏิเสธและได้รับข้อความ ไม่มีสิทธิ์ในการแจ้งเตือนแบบพุช - ดูเหมือนว่าแอปของคุณจะลงทะเบียนกับบริการ Apple Push Notification แต่สิทธิ์ของลายเซ็นแอปไม่รวมสิทธิ์ "aps-environment" หากแอปของคุณใช้บริการแจ้งเตือนแบบพุชของ Apple ตรวจสอบให้แน่ใจว่ารหัสแอปของคุณเปิดใช้งานสำหรับการแจ้งเตือนแบบพุชในพอร์ทัลการจัดเตรียมและส่งอีกครั้งหลังจากลงนามแอปของคุณด้วยโปรไฟล์การจัดเตรียมการแจกจ่ายที่มีสิทธิ์ "aps-environment" ฉันตรวจสอบการจัดเตรียมเฉพาะกิจและที่นั่นฉันพบสภาพแวดล้อมและการใช้งานจริงอย่างไรก็ตามเมื่อฉันเปิดการจัดเตรียมการแจกจ่ายฉันไม่พบสิ่งนั้น นี่คือสาเหตุของข้อความแสดงข้อผิดพลาดและการปฏิเสธของ Apple ฉันจะแก้ไขได้อย่างไร

5
วิธี“ ตั้งค่าเบรกพอยต์ใน malloc_error_break เพื่อแก้จุดบกพร่อง”
ฉันได้รับเอาต์พุตคอนโซลจำนวนมากเช่นนี้โดยที่แอปพลิเคชันของฉันหยุดทำงาน: malloc: * ข้อผิดพลาดสำหรับอ็อบเจ็กต์ 0xc6a3970: ตัวชี้ที่เป็นอิสระไม่ได้รับการจัดสรร *ตั้งค่าเบรกพอยต์ใน malloc_error_break เพื่อแก้จุดบกพร่อง ฉันจะทราบได้อย่างไรว่าวัตถุหรือตัวแปรใดได้รับผลกระทบ ฉันพยายามตั้งค่าเบรกพอยต์เชิงสัญลักษณ์เช่นนี้ แต่มันไม่เคยหยุด:
126 iphone  ios 

5
Xcode ไม่แสดงบรรทัดที่ทำให้เกิดข้อขัดข้อง
ทุกครั้งที่แอปของฉันขัดข้อง Xcode จะไฮไลต์การเรียก UIApicationMain () ในฟังก์ชัน main () เป็นบรรทัดที่ทำให้เกิดข้อขัดข้อง ในบางกรณีที่เคยเป็นเรื่องปกติ (เช่นความผิดพลาดในการแบ่งส่วน) แต่ความผิดพลาดที่ฉันพยายามจัดการคือ SIGABRT ธรรมดาที่มีข้อมูลโดยละเอียดที่บันทึกไว้ในคอนโซล: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: Date)' Xcode ใช้เพื่อแสดงบรรทัดที่เหมาะสมกับ SDK รุ่นเก่า แต่เนื่องจากฉันอัปเกรดเป็น Xocde 4.2 ที่เปลี่ยนไป เห็นได้ชัดว่า Xcode รู้แน่ชัดว่าอะไรทำให้เกิดความผิดพลาด (หรืออาจจะรู้) แต่ก็ยังไม่แสดงเส้นที่แท้จริง มีวิธีแก้ไขหรือวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?

7
วิธีลบแอพออกจาก iTunesConnect / App Store Connect
ฉันส่งแอปใหม่เอี่ยมไปยัง AppStore และถูกปฏิเสธโดย Lords ... (ไม่มีอะไรใหม่ที่นั่น) สิ่งที่ฉันต้องการทำคือลบแอพนั้นออกจากบัญชี itunesconnect โดยสิ้นเชิง ฉันไม่รู้ว่าแอปเปิลเพิ่งเปลี่ยนแปลงอะไร แต่ในอดีตเมื่อแอปถูกปฏิเสธฉันใช้เพื่อดูปุ่ม "ลบ" ในหน้าสรุป ตอนนี้ฉันไม่เห็นอีกแล้ว ฉันยังตรวจสอบเอกสารอย่างเป็นทางการของ Apple ที่นี่และนั่นก็บอกด้วยว่าฉันควรจะสามารถลบออกจาก appstore โดยใช้ปุ่มลบได้ตราบเท่าที่แอปอยู่ในสถานะปฏิเสธ แต่ไม่พบปุ่มลบ ฉันได้ลองลบออกจากพื้นที่ทั้งหมดแล้วภายใต้ "สิทธิ์และราคา" และวันที่วางจำหน่ายคือวันที่ 22 มกราคม 2014 ที่ผ่านมา ... ยังไม่มีปุ่มลบให้เห็น ฉันจะเอาออกได้อย่างไร? หมายเหตุ: ไม่มีการซื้อในแอปหรือศูนย์เกม

15
UICollectionView ภายใน UITableViewCell - ความสูงแบบไดนามิก?
หนึ่งในหน้าจอแอปพลิเคชันของเราต้องการให้เราวางUICollectionViewไฟล์UITableViewCell. สิ่งนี้UICollectionViewจะมีจำนวนรายการแบบไดนามิกทำให้มีความสูงซึ่งต้องคำนวณแบบไดนามิกเช่นกัน UICollectionViewแต่ผมกำลังทำงานเป็นปัญหาพยายามที่จะคำนวณความสูงของที่ฝังตัว การครอบคลุมของเราUIViewControllerถูกสร้างขึ้นในสตอรีบอร์ดและใช้ประโยชน์จากรูปแบบอัตโนมัติ แต่ฉันไม่รู้วิธีเพิ่มความสูงแบบไดนามิกUITableViewCellตามความสูงของไฟล์UICollectionView. ใครสามารถให้คำแนะนำหรือคำแนะนำเกี่ยวกับวิธีการทำสิ่งนี้ได้บ้าง?

3
ความแตกต่างระหว่าง dispatch_async และ dispatch_sync บน Serial Queue?
ฉันได้สร้างอนุกรมคิวดังนี้: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); อะไรคือความแตกต่างระหว่างที่dispatch_asyncเรียกเช่นนี้ dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{ /* TASK 2 */ }); แล้วdispatch_syncเรียกแบบนี้บนซีเรียลคิว? dispatch_sync(_serialQueue, ^{ /* TASK 1 */ }); dispatch_sync(_serialQueue, ^{ /* TASK 2 */ }); ความเข้าใจของฉันคือไม่ว่าจะใช้วิธีการจัดส่งแบบใดTASK 1จะถูกดำเนินการและเสร็จสิ้นก่อนTASK 2ถูกต้องหรือไม่?

17
วิธีใช้ UIScrollView ใน Storyboard
ฉันมีมุมมองแบบเลื่อนที่มีเนื้อหาสูง 1,000px และต้องการจัดวางเพื่อให้ออกแบบได้ง่ายบนกระดานเรื่องราว ฉันรู้ว่ามันสามารถทำได้โดยใช้โปรแกรม แต่ฉันอยากเห็นมันด้วยสายตาจริงๆ ทุกครั้งที่ใส่มุมมองแบบเลื่อนบนตัวควบคุมมุมมองมันจะไม่เลื่อน เป็นไปได้ไหมที่จะทำให้มันทำงานอย่างที่ต้องการหรือต้องทำในโค้ด

13
การส่งผ่านพารามิเตอร์ไปยัง addTarget: action: forControlEvents
ฉันใช้ addTarget: action: forControlEvents เช่นนี้: [newsButton addTarget:self action:@selector(switchToNewsDetails) forControlEvents:UIControlEventTouchUpInside]; และฉันต้องการส่งผ่านพารามิเตอร์ไปยังตัวเลือก "switchToNewsDetails" ของฉัน สิ่งเดียวที่ฉันทำสำเร็จคือส่ง (id) ผู้ส่งโดยเขียน: action:@selector(switchToNewsDetails:) แต่ฉันกำลังพยายามส่งผ่านตัวแปรเช่นค่าจำนวนเต็ม เขียนด้วยวิธีนี้ไม่ได้ผล: int i = 0; [newsButton addTarget:self action:@selector(switchToNewsDetails:i) forControlEvents:UIControlEventTouchUpInside]; เขียนด้วยวิธีนี้ไม่ได้ผลเช่นกัน: int i = 0; [newsButton addTarget:self action:@selector(switchToNewsDetails:i:) forControlEvents:UIControlEventTouchUpInside]; ความช่วยเหลือใด ๆ จะได้รับการชื่นชม :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.